/*******************************************************************************
*              (c), Copyright 2001, Marvell International Ltd.                 *
* THIS CODE CONTAINS CONFIDENTIAL INFORMATION OF MARVELL SEMICONDUCTOR, INC.   *
* NO RIGHTS ARE GRANTED HEREIN UNDER ANY PATENT, MASK WORK RIGHT OR COPYRIGHT  *
* OF MARVELL OR ANY THIRD PARTY. MARVELL RESERVES THE RIGHT AT ITS SOLE        *
* DISCRETION TO REQUEST THAT THIS CODE BE IMMEDIATELY RETURNED TO MARVELL.     *
* THIS CODE IS PROVIDED "AS IS". MARVELL MAKES NO WARRANTIES, EXPRESSED,       *
* IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, COMPLETENESS OR PERFORMANCE.   *
********************************************************************************
* prvCpssDxChHwTables.h
*
* DESCRIPTION:
*       Private API definition for tables access of the Cheetah and Cheetah 2.
*
* FILE REVISION NUMBER:
*       $Revision: 95 $
*
*******************************************************************************/

#ifndef __prvCpssDxChHwTablesh
#define __prvCpssDxChHwTablesh

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include <cpssCommon/private/prvCpssMisc.h>
#include <cpss/generic/cpssHwInit/private/prvCpssHwMultiPortGroups.h>

/* value for field of 'fieldWordNum' that indicates that the 'word' is not used,
   and instead the field of 'fieldOffset' represents 'Global bit offset' and not
   offset in specific word

   see relevant APIs :
   prvCpssDxChReadTableEntryField(...)
   prvCpssDxChWriteTableEntryField(...)
   prvCpssDxChPortGroupReadTableEntryField(...)
   prvCpssDxChPortGroupWriteTableEntryField(...)
*/
#define PRV_CPSS_DXCH_TABLE_WORD_INDICATE_GLOBAL_BIT_CNS   0xFFFFFFFF

/* value for field of 'fieldWordNum' that indicates that the 'word' is not used,
   and instead the field of 'fieldOffset' represents 'field name' and not
   offset in specific word.

   important: the field 'fieldLength' is used ONLY if  it's value != 0
              and then it means 'Mumber of consecutive fields' !!!

   see relevant APIs :
   prvCpssDxChReadTableEntryField(...)
   prvCpssDxChWriteTableEntryField(...)
   prvCpssDxChPortGroupReadTableEntryField(...)
   prvCpssDxChPortGroupWriteTableEntryField(...)
*/
#define PRV_CPSS_DXCH_TABLE_WORD_INDICATE_FIELD_NAME_CNS   0xEEEEEEEE

#define PRV_CPSS_DXCH_TABLES_WORD_INDICATE_AUTO_CALC_LENGTH_CNS     0

/* value of 'sub field' for field of 'fieldWordNum' that indicates that
   the 'word' is not used,
   and instead the field of 'fieldOffset' represents 'field name' and not
   offset in specific word.
   and the 'fieldLength' is used as 'sub field offset' and as 'sub field length'.
   use macro

   see relevant APIs :
   prvCpssDxChReadTableEntryField(...)
   prvCpssDxChWriteTableEntryField(...)
   prvCpssDxChPortGroupReadTableEntryField(...)
   prvCpssDxChPortGroupWriteTableEntryField(...)
*/
#define PRV_CPSS_DXCH_TABLE_WORD_INDICATE_SUB_FIELD_IN_FIELD_NAME_CNS 0xDDDDDDDD

/* macro to use with PRV_CPSS_DXCH_TABLE_WORD_INDICATE_SUB_FIELD_IN_FIELD_NAME_CNS
    for the field of fieldLength
   The 'fieldLength' is used as 'sub field offset' and as 'sub field length'.
   use macro
   see relevant APIs :
   prvCpssDxChReadTableEntryField(...)
   prvCpssDxChWriteTableEntryField(...)
   prvCpssDxChPortGroupReadTableEntryField(...)
   prvCpssDxChPortGroupWriteTableEntryField(...)
*/
#define PRV_CPSS_DXCH_TABLE_SUB_FIELD_OFFSET_AND_LENGTH_MAC(_offset,_length)    \
    (((_offset)& 0xFFFF) | ((_length) << 16))

/*
 * Typedef: enum PRV_CPSS_DXCH_ACCESS_ACTION_ENT
 *
 * Description:
 *      access action for non-direct memory of cheetah
 *
 * Enumerations:
 *      PRV_CPSS_DXCH_ACCESS_ACTION_READ_E - read action
 *      PRV_CPSS_DXCH_ACCESS_ACTION_WRITE_E - write action
 *
 */
typedef enum
{
    PRV_CPSS_DXCH_ACCESS_ACTION_READ_E = 0,
    PRV_CPSS_DXCH_ACCESS_ACTION_WRITE_E
} PRV_CPSS_DXCH_ACCESS_ACTION_ENT;


/* common used types */
/*
 * Typedef: enum PRV_CPSS_DXCH_TABLE_ACCESS_TYPE_ENT
 *
 * Description:
 *      type of access to cheetah's table
 *
 * Enumerations:
 *      PRV_CPSS_DXCH_DIRECT_ACCESS_E   - direct access
 *      PRV_CPSS_DXCH_INDIRECT_ACCESS_E - indirect access
 *
 */

typedef enum
{
    PRV_CPSS_DXCH_DIRECT_ACCESS_E,
    PRV_CPSS_DXCH_INDIRECT_ACCESS_E
} PRV_CPSS_DXCH_TABLE_ACCESS_TYPE_ENT;


/* common used types
 *
 * Typedef: enum PRV_CPSS_DXCH_TABLE_ENT
 *
 * Description:
 *      names of the tables that are non-direct accessed
 *
 *     !!!! Values of enum linked with tables DB. Tables DB must be updated
 *          in any cases of changes in the enum !!!!!!
 *
 * Enumerations:
 *  PRV_CPSS_DXCH_TABLE_VLAN_PORT_PROTOCOL_E  - VLAN_PORT_PROTOCOL table
 *  PRV_CPSS_DXCH_TABLE_PORT_VLAN_QOS_E - PORT_VLAN_QOS table
 *  PRV_CPSS_DXCH_TABLE_TRUNK_MEMBERS_E - TABLE_TRUNK_MEMBERS.
 *  PRV_CPSS_DXCH_TABLE_STATISTICAL_RATE_LIMIT_E - STATISTICAL_RATE_LIMIT table.
 *  PRV_CPSS_DXCH_TABLE_CPU_CODE_E -  CPU_CODE table.
 *  PRV_CPSS_DXCH_TABLE_PCL_CONFIG_E - PCL_CONFIG table
 *  PRV_CPSS_DXCH_TABLE_QOS_PROFILE_E - QOS_PROFILE table.
 *  PRV_CPSS_DXCH_TABLE_REMARKING_E - REMARKING table.
 *  PRV_CPSS_DXCH_TABLE_STG_E - STG table.
 *  PRV_CPSS_DXCH_TABLE_VLAN_E -  VLAN table.
 *  PRV_CPSS_DXCH_TABLE_MULTICAST_E - MULTICAST table
 *  PRV_CPSS_DXCH_TABLE_ROUTE_HA_MAC_SA_E - ROUTE_HA_MAC_SA table.
 *  PRV_CPSS_DXCH_TABLE_ROUTE_HA_ARP_DA_E - ROUTE_HA_ARP_DA table. only in CH 1. - for others see 'tunnel start'
 *  PRV_CPSS_DXCH_TABLE_FDB_E - FDB table.
 *  PRV_CPSS_DXCH_TABLE_POLICER_E - POLICER table
 *  PRV_CPSS_DXCH_TABLE_POLICER_COUNTERS_E - POLICER_COUNTERS table.
 *  PRV_CPSS_DXCH2_TABLE_EGRESS_PCL_CONFIG_E -  EGRESS_PCL_CONFIG table.
 *  PRV_CPSS_DXCH2_TABLE_TUNNEL_START_CONFIG_E -  TUNNEL_START table.
 *  PRV_CPSS_DXCH2_TABLE_QOS_PROFILE_TO_ROUTE_BLOCK_E - QOS_PROFILE_TO_ROUTE table.
 *  PRV_CPSS_DXCH2_TABLE_ROUTE_ACCESS_MATRIX_E - ROUTE_ACCESS_MATRIX table.
 *  PRV_CPSS_DXCH2_LTT_TT_ACTION_E - LTT_TT_ACTION table.
 *  PRV_CPSS_DXCH2_UC_MC_ROUTE_NEXT_HOP_E - UC_MC_ROUTE_NEXT_HOP table.
 *  PRV_CPSS_DXCH2_ROUTE_NEXT_HOP_AGE_E - ROUTE_NEXT_HOP_AGE table.
 *  PRV_CPSS_DXCH3_TABLE_MAC2ME_E - MAC2ME table.
 *  PRV_CPSS_DXCH3_TABLE_INGRESS_VLAN_TRANSLATION_E - INGRESS_VLAN_TRANSLATION table.
 *  PRV_CPSS_DXCH3_TABLE_EGRESS_VLAN_TRANSLATION_E - EGRESS_VLAN_TRANSLATION table.
 *  PRV_CPSS_DXCH3_TABLE_VRF_ID_E - VRF_ID table.
 *  PRV_CPSS_DXCH3_LTT_TT_ACTION_E - LTT_TT_ACTION table.
 *  PRV_CPSS_DXCH_XCAT_TABLE_INGRESS_PCL_LOOKUP1_CONFIG_E - INGRESS_PCL_LOOKUP1 table.
 *  PRV_CPSS_DXCH_XCAT_TABLE_INGRESS_PCL_UDB_CONFIG_E - INGRESS_PCL_UDB table.
 *  PRV_CPSS_DXCH_XCAT_TABLE_LOGICAL_TARGET_MAPPING_E -LOGICAL_TARGET_MAPPING table.
 *  PRV_CPSS_DXCH_XCAT_TABLE_BCN_PROFILES_E -BCN_PROFILES table.
 *  PRV_CPSS_DXCH_XCAT_TABLE_EGRESS_POLICER_REMARKING_E - Egress Policer Remarking table.
 *  PRV_CPSS_DXCH_XCAT_TABLE_EQ_VLAN_MAPPING_E - Egress Filter Vlan Mapping table.
 *  PRV_CPSS_DXCH_XCAT_TABLE_EQ_LP_EGRESS_VLAN_MEMBER_E - Egress Filter Vlan Member table.
 *  PRV_CPSS_DXCH_XCAT_TABLE_MLL_L2MLL_VIDX_ENABLE_E - L2MLL VIDX enable table.
 *  PRV_CPSS_DXCH_XCAT_TABLE_MLL_L2MLL_POINTER_MAPPING_E - L2MLL Pointer Mapping table.
 *  PRV_CPSS_DXCH_XCAT_TABLE_LAST_E - last for XCAT supported tables.
 *  PRV_CPSS_DXCH_XCAT3_TABLE_LAST_E - last for XCAT3 supported tables.
 *  xCat2, Lion and above tables:
 *  PRV_CPSS_DXCH_XCAT2_TABLE_INGRESS_PCL_LOOKUP01_CONFIG_E - INGRESS_PCL_LOOKUP01 table.
 *  PRV_CPSS_DXCH_LION_TABLE_TRUNK_HASH_MASK_CRC_E -  trunk hash mask crc table
 *  PRV_CPSS_DXCH_XCAT2_TABLE_LAST_E - last for XCAT2 supported tables.
 *  PRV_CPSS_DXCH_LION_TABLE_VLAN_INGRESS_E        - ingress VLAN table
 *  PRV_CPSS_DXCH_LION_TABLE_VLAN_EGRESS_E         - egress VLAN table
 *  PRV_CPSS_DXCH_LION_TABLE_STG_INGRESS_E         - ingress STG table
 *  PRV_CPSS_DXCH_LION_TABLE_STG_EGRESS_E          - egress STG table
 *  PRV_CPSS_DXCH_LION_TABLE_PORT_ISOLATION_L2_E   - port isolation L2 table
 *  PRV_CPSS_DXCH_LION_TABLE_PORT_ISOLATION_L3_E   - port isolation L3 table
 *  PRV_CPSS_DXCH_LION_TABLE_TXQ_SHAPER_PER_PORT_PER_PRIO_TOKEN_BUCKET_CONFIG_E -
 *              txq shaper - per port per TC token bucket configuration
 *  PRV_CPSS_DXCH_LION_TABLE_TXQ_SHAPER_PER_PORT_TOKEN_BUCKET_CONFIG_E -
 *              txq shaper - per port token bucket configuration
 *  PRV_CPSS_DXCH_LION_TABLE_TXQ_SOURCE_ID_MEMBERS_E -
 *              txq source Id members table
 *  PRV_CPSS_DXCH_LION_TABLE_TXQ_NON_TRUNK_MEMBERS_E -
 *              txq non trunk members table
 *  PRV_CPSS_DXCH_LION_TABLE_TXQ_DESIGNATED_PORT_E -
 *              txq designated port table
 *  PRV_CPSS_DXCH_LION_TABLE_TXQ_EGRESS_STC_E -
 *              txq egress STC (Sampling To CPU) table
 *  PRV_CPSS_DXCH_LION_TABLE_ROUTER_VLAN_URPF_STC_E -
 *              unicast RPF STC (Sampling To CPU) table
 *  PRV_CPSS_DXCH_LION_TABLE_LAST_E - last table ID supported by Lion devices
 *
 *  Bobcat2 and above
 *  PRV_CPSS_DXCH_LION3_TABLE_TTI_PHYSICAL_PORT_ATTRIBUTE_E -
 *              TTI Physical ports attributes table
 *  PRV_CPSS_DXCH_LION3_TABLE_PRE_TTI_LOOKUP_INGRESS_EPORT_E -
 *              TTI pre lookup ingress ePort table
 *  PRV_CPSS_DXCH_LION3_TABLE_POST_TTI_LOOKUP_INGRESS_EPORT_E -
 *              TTI post lookup ingress ePort table
 *  PRV_CPSS_DXCH_LION3_TABLE_BRIDGE_INGRESS_EPORT_E -
 *              Bridge ingress ePort table
 *  PRV_CPSS_DXCH_LION3_TABLE_BRIDGE_INGRESS_EPORT_LEARN_PRIO_E -
 *              Bridge ingress ePort table - for learn priority
 *  PRV_CPSS_DXCH_LION3_TABLE_BRIDGE_SOURCE_TRUNK_ATTRIBUTE_E -
 *              Bridge source trunk attribute table
 *  PRV_CPSS_DXCH_LION3_TABLE_BRIDGE_PHYSICAL_PORT_E -
 *              Bridge per physical port info table (rate limit configuration)
 *  PRV_CPSS_DXCH_LION3_TABLE_BRIDGE_PHYSICAL_PORT_RATE_LIMIT_COUNTERS_E,
 *              Bridge per physical port rate limit counters table
 *  PRV_CPSS_DXCH_LION3_TABLE_EQ_INGRESS_EPORT_E -
 *              Pre-egress ingress ePort table
 *  PRV_CPSS_DXCH_LION3_TABLE_EQ_EGRESS_EPORT_E -
 *              Pre-egress egress ePort table
 *  PRV_CPSS_DXCH_LION3_TABLE_L2_ECMP_LTT_E -
 *              L2 ECMP LTT table
 *  PRV_CPSS_DXCH_LION3_TABLE_L2_ECMP_E -
 *              L2 ECMP table
 *  PRV_CPSS_DXCH_LION3_TABLE_EPORT_TO_PHYSICAL_PORT_TARGET_MAPPING_E -
 *              ePort to physical port mapping table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_EFT_FAST_STACK_FAILOVER_SECONDARY_TARGET_PORT_E -
 *              EGF - Fast Stack Failover Secondary Target Port Table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_QAG_EGRESS_EPORT_E -
 *              EGF_QAG - egress ePort table (in addition to the one in EGF_SHT !!!)
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_QAG_EGRESS_VLAN_E -
 *              EGF_QAG - egress eVlan table (in addition to the one in EGF_SHT !!!)
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_QAG_TARGET_PORT_MAPPER_E -
 *              EGF_QAG - Target Port Mapper
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_QAG_CPU_CODE_TO_LOOPBACK_MAPPER_E -
 *              EGF_QAG - CPU Code To Loopback Mapper
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_QAG_FWD_FROM_CPU_TO_LOOPBACK_MAPPER_E -
 *              EGF_QAG - Forward from CPU To Loopback Mapper
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_EGRESS_EPORT_E -
 *              EGF_SHT - egress ePort table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_DEVICE_MAP_TABLE_E -
 *              EGF_SHT - device map table
 *  PRV_CPSS_DXCH_LION3_TABLE_HA_EGRESS_EPORT_1_E -
 *              Header Alteration egress ePort table 1
 *  PRV_CPSS_DXCH_LION3_TABLE_HA_EGRESS_EPORT_2_E -
 *              Header Alteration egress ePort table 2
 *  PRV_CPSS_DXCH_LION3_TABLE_HA_PHYSICAL_PORT_1_E -
 *              Header Alteration physical port table 1
 *  PRV_CPSS_DXCH_LION3_TABLE_HA_PHYSICAL_PORT_2_E -
 *              Header Alteration physical port table 2
 *  PRV_CPSS_DXCH_LION3_TABLE_HA_QOS_PROFILE_TO_EXP_E -
 *              Header Alteration - QosProfile to EXP mapping
 *  PRV_CPSS_DXCH_LION3_TABLE_HA_EPCL_UDB_CONFIG_E -
 *              Header Alteration - EPCL UDB configuration table
 *  PRV_CPSS_DXCH_LION3_TABLE_HA_PTP_DOMAIN_E -
 *              Header Alteration - PTP Domain table
 *  PRV_CPSS_DXCH_LION3_TABLE_HA_GENERIC_TS_PROFILE_E -
 *              Header Alteration - Generic Tunnel Start Profile table
 *  PRV_CPSS_DXCH_LION3_TABLE_HA_GLOBAL_MAC_SA_E -
 *              Header Alteration - Global MAC SA table
 *  PRV_CPSS_DXCH_LION3_TABLE_IP_MLL_E -
 *              MLL - IP MLL table
 *              NOTE: the table is same one as 'L2 MLL' , but the separation is ONLY for 'fields' format usage.
 *  PRV_CPSS_DXCH_LION3_TABLE_L2_MLL_E -
 *              MLL - L2 MLL table
 *              NOTE: the table is same one as 'IP MLL' , but the separation is ONLY for 'fields' format usage.
 *  PRV_CPSS_DXCH_LION3_TABLE_L2_MLL_LTT_E -
 *              L2 MLL LTT table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_PCL_EPORT_ATTRIBUTES_E -
 *              Egress PCL ePort attributes table
 *  PRV_CPSS_DXCH_LION3_TABLE_ADJACENCY_E -
 *              TRILL Adjacency table
 *  PRV_CPSS_DXCH_LION3_TABLE_RBID_E -
 *              rBridge table
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_E_ATTRIBUTES_E -
 *              ingress policer stage 0 e-attributes table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_REMARKING_E -
 *              ingress policer stage 0 Re-marking table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_HIERARCHICAL_E -
 *              ingress policer stage 0 hierarchical policing table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_METERING_E -
 *              ingress policer stage 0 metering table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_COUNTING_E -
 *              ingress policer stage 0 counting table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_IPFIX_ALERT_AGING_E -
 *              ingress policer stage 0 IPFIX alert aging table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_IPFIX_ALERT_WRAPAROUND_E -
 *              ingress policer stage 0 IPFIX alert wraparoundtable
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_1_E_ATTRIBUTES_E -
 *              ingress policer stage 1 e-attributes table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_1_REMARKING_E -
 *              ingress policer stage 1 Re-marking table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_1_METERING_E -
 *              ingress policer stage 1 metering table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_1_COUNTING_E -
 *              ingress policer stage 1 counting table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_1_IPFIX_ALERT_AGING_E -
 *              ingress policer stage 1 IPFIX alert aging table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_1_IPFIX_ALERT_WRAPAROUND_E -
 *              ingress policer stage 1 IPFIX alert wraparoundtable
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_POLICER_E_ATTRIBUTES_E -
 *              egress policer e-attributes table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_POLICER_METERING_E -
 *              egress policer metering table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_POLICER_COUNTING_E -
 *              egress policer counting table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_POLICER_IPFIX_ALERT_AGING_E -
 *              egress policer IPFIX alert aging table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_POLICER_IPFIX_ALERT_WRAPAROUND_E -
 *              egress policer IPFIX alert wraparoundtable
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_IPVX_INGRESS_EPORT_E -
 *              IPvX Ingress ePort table
 *  PRV_CPSS_DXCH_LION3_TABLE_IPVX_EVLAN_E -
 *              IPvX eVlan table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_E -
 *              ingress OAM table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_KEEPALIVE_AGING_E -
 *              ingress OAM Aging table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_MEG_EXCEPTION_E -
 *              ingress OAM MEG Exception table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_SOURCE_INTERFACE_EXCEPTION_E -
 *              ingress OAM Source Interface Exception table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_INVALID_KEEPALIVE_HASH_E -
 *              ingress OAM Invalid Keepalive Hash table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_KEEPALIVE_EXCESS_E -
 *              ingress OAM Excess Keepalive table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_EXCEPTION_SUMMARY_E -
 *              ingress OAM Exception Summary table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_RDI_STATUS_CHANGE_EXCEPTION_E -
 *              ingress OAM RDI Status Cheange Exception table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_TX_PERIOD_EXCEPTION_E -
 *              ingress OAM Tx Period Exception table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_OPCODE_PACKET_COMMAND_E -
 *              ingress OAM Opcode Packet Command table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_E
 *              egress OAM table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_KEEPALIVE_AGING_E
 *              egress OAM aging table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_MEG_EXCEPTION_E
 *              egress OAM MEG Exception table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_SOURCE_INTERFACE_EXCEPTION_E
 *              egress OAM Source Interface Exception table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_INVALID_KEEPALIVE_HASH_E
 *              egress OAM Invalid Keepalive Hash table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_KEEPALIVE_EXCESS_E
 *              egress OAM Excess Keepalive table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_EXCEPTION_SUMMARY_E
 *              egress OAM Exception Summary table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_RDI_STATUS_CHANGE_EXCEPTION_E
 *              egress OAM RDI Status Cheange Exception table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_TX_PERIOD_EXCEPTION_E
 *              egress OAM Tx Period Exception table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_OPCODE_PACKET_COMMAND_E
 *              egress OAM Opcode Packet Command table
 *  PRV_CPSS_DXCH_LION3_TABLE_OAM_LM_OFFSET_E
 *              OAM Loss Measurement Offset Table
 *  PRV_CPSS_DXCH_LION3_TABLE_TTI_QOS_MAP_DSCP_TO_QOS_PROFILE_E
 *              TTI unit : Qos mapping : dscp to qos profile
 *  PRV_CPSS_DXCH_LION3_TABLE_TTI_QOS_MAP_UP_CFI_TO_QOS_PROFILE_E
 *              TTI unit : Qos mapping : up,cfi to qos profile
 *  PRV_CPSS_DXCH_LION3_TABLE_TTI_QOS_MAP_EXP_TO_QOS_PROFILE_E
 *              TTI unit : Qos mapping : ext to qos profile
 *  PRV_CPSS_DXCH_LION3_TABLE_TTI_QOS_MAP_DSCP_TO_DSCP_E
 *              TTI unit : Qos mapping : dscp to dscp
 *  PRV_CPSS_DXCH_LION3_TABLE_TTI_UDB_CONFIG_E -
 *              TTI User Defined Bytes Configuration Memory
 *  PRV_CPSS_DXCH_LION3_TABLE_TTI_PTP_COMMAND_E
 *              TTI PTP Command table
 *  PRV_CPSS_DXCH_LION3_TABLE_IPCL0_UDB_SELECT_E -
 *              IPCL UDB selection table for lookup 0 (first lookup)
 *  PRV_CPSS_DXCH_LION3_TABLE_IPCL1_UDB_SELECT_E -
 *              IPCL UDB selection table for lookup 1 (second lookup)
 *  PRV_CPSS_DXCH_LION3_TABLE_IPCL2_UDB_SELECT_E -
 *              IPCL UDB selection table for lookup 2 (third lookup)
 *  PRV_CPSS_DXCH_LION3_TABLE_TCAM_PCL_TTI_ACTION_E -
 *              the action table that is associated with the TCAM of TTI,IPCL(0,1,2),EPCL
 *  PRV_CPSS_DXCH_LION3_TABLE_ERMRK_TIMESTAMP_CFG_E -
 *              Timestamp Configuration Table, ERMRK
 *  PRV_CPSS_DXCH_LION3_TABLE_ERMRK_PTP_LOCAL_ACTION_E -
 *              Local Action Table, ERMRK
 *  PRV_CPSS_DXCH_LION3_TABLE_ERMRK_PTP_TARGET_PORT_E -
 *              Target Port Table, ERMRK
 *  PRV_CPSS_DXCH_LION3_TABLE_ERMRK_PTP_SOURCE_PORT_E -
 *              Source Port Table, ERMRK
 *  PRV_CPSS_DXCH_LION3_TABLE_TCAM_E -
 *              TCAM memory table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_BRIDGE_PORT_MEMBERS_E -
 *              ingress Bridge Port Membership Table
 *  PRV_CPSS_DXCH_LION3_TABLE_INGRESS_SPAN_STATE_GROUP_INDEX_E -
 *              ingress Span State Group Index Table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_VLAN_ATTRIBUTES_E  -
 *              egress VLAN attributes table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_VLAN_SPANNING_E    -
 *              egress VLAN spanning tree table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_VLAN_MAPPER_E      -
 *              egress VLAN ID mapper table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_NON_TRUNK_MEMBERS2_E -
 *              non trunk members2 table
 *  PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_EPORT_FILTER_E -
 *              ePort egress filtering table
 *  PRV_CPSS_DXCH_LION3_TABLE_EPCL_UDB_SELECT_E             -
 *              EPCL UDB selection.
 *  PRV_CPSS_DXCH_LION3_TABLE_BMA_PORT_MAPPING_E
 *              BMA port mapping
 *  PRV_CPSS_DXCH_LION3_TABLE_BMA_MULTICAST_COUNTERS_E -
 *              BMA multicast counters
 *  PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_MAX_QUEUE_LIMITS_E -
 *              Tail Drop Maximum Queue Limits
 *  PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_EQ_QUEUE_LIMITS_DP0_E -
 *              Tail Drop Queue Limits DP0 - Enqueue
 *  PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_DQ_QUEUE_BUF_LIMITS_E -
 *              Tail Drop Queue Buffer Limits - Dequeue
 *  PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_DQ_QUEUE_DESC_LIMITS_E -
 *              Tail Drop Queue Descriptor Limits - Dequeue
 *  PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_EQ_QUEUE_LIMITS_DP1_E -
 *              Tail Drop Queue Limits DP1 - Enqueue
 *  PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_EQ_QUEUE_LIMITS_DP2_E -
 *              Tail Drop Queue Limits DP2 - Enqueue
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_COUNTERS_Q_MAIN_BUFF_E -
 *              Tail Drop Counters - Buffers Queue Maintenance counters
 *  PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_COUNTERS_Q_MAIN_MC_BUFF_E -
 *              Tail Drop Counters - Multicast Buffers Queue Maintenance counters.
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_TXQ_LINK_LIST_COUNTERS_Q_MAIN_DESC_E -
 *              TXQ LL - Queue Maintenance Descriptors Counters.
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_PFC_MODE_PROFILE_TC_XOFF_THRESHOLDS_E -
 *              FC Mode Profile TC XOff Thresholds
 *  PRV_CPSS_DXCH_LION3_TABLE_PFC_MODE_PROFILE_TC_XON_THRESHOLDS_E -
 *              FC Mode Profile TC XOn Thresholds
 *  PRV_CPSS_DXCH_LION3_TABLE_PFC_LLFC_COUNTERS_E -
 *              PFC Counters
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_DROP_DROP_MASKING_E       -
 *              indicates if to use recommendation from TM for dropping decision.
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_DROP_QUEUE_PROFILE_ID_E   -
 *              maps every queue to its profile.
 *
 *  PPRV_CPSS_DXCH_LION3_TABLE_TM_QMAP_CPU_CODE_TO_TC_E         -
 *              map CpuCode to TC for TO_CPU packets.
 *  PPRV_CPSS_DXCH_LION3_TABLE_TM_QMAP_TARGET_DEV_TO_INDEX_E    -
 *              map TrgDev to an index which used to access Queue Selector table.
 *  PPRV_CPSS_DXCH_LION3_TABLE_TM_QMAP_POLICING_ENABLE_E        -
 *              force policing per TM-Queue-ID.
 *  PPRV_CPSS_DXCH_LION3_TABLE_TM_QMAP_QUEUE_ID_SELECTOR_E -
 *              indicates how to build the TM-Queue-ID.
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_INGR_GLUE_L1_PKT_LEN_OFFSET_E -
 *              TM ingress L1 packet length offset configuration.
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_EGR_GLUE_AGING_QUEUE_PROFILE_E     -
 *              TM Egress Aging Queue Profile.
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_EGR_GLUE_AGING_PROFILE_THESHOLDS_E -
 *              TM Egress Aging Profile Thresholds.
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_EGR_GLUE_TARGET_INTERFACE_E        -
 *              TM Egress Target Interface.
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_ETH_DMA_TO_TM_PORT_MAPPING_E -
 *              Ethernet DMA to TM port mapping.
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_ILK_DMA_TO_TM_PORT_MAPPING_E -
 *              Interlaken DMA to TM port mapping.
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_TC_PORT_TO_CNODE_PORT_MAPPING_E -
 *              TC port to CNode port mapping.
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_PORT_INGRESS_TIMERS_CONFIG_E -
 *              IPort Configuration.
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_INGRESS_TIMERS_E -
 *              Ingress Timers.
 *  PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_PORT_TO_PHYSICAL_PORT_MAPPING_E -
 *              FCU PFC port to Physical port mapping.
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_CN_SAMPLE_INTERVALS_E -
 *              CN Sample Intervals table
 *
 *  PRV_CPSS_DXCH_LION3_TABLE_LAST_E - last table ID supported by Lion2 devices
 *  PRV_CPSS_DXCH_BOBCAT2_TABLE_LAST_E - last table ID supported by Bobcat2 devices
 *
 *  PRV_CPSS_DXCH_BOBK_TABLE_INGRESS_POLICER_0_METERING_CONFIG_E - bobk : iplr0 : meter config table.
 *  PRV_CPSS_DXCH_BOBK_TABLE_INGRESS_POLICER_1_METERING_CONFIG_E - bobk : iplr1 : meter config table.
 *  PRV_CPSS_DXCH_BOBK_TABLE_EGRESS_POLICER_METERING_CONFIG_E - bobk : eplr  : meter config table.
 *  PRV_CPSS_DXCH_BOBK_TABLE_INGRESS_POLICER_0_METERING_CONFORM_SIGN_E - bobk : iplr0 : conformance sign
 *  PRV_CPSS_DXCH_BOBK_TABLE_INGRESS_POLICER_1_METERING_CONFORM_SIGN_E - bobk : iplr1 : conformance sign
 *  PRV_CPSS_DXCH_BOBK_TABLE_EGRESS_POLICER_METERING_CONFORM_SIGN_E    - bobk : eplr  : conformance sign
 *
 *  PRV_CPSS_DXCH_BOBK_TABLE_LAST_E - last table ID supported by BobK devices
 *
 *  PRV_CPSS_DXCH_BOBCAT3_TABLE_EGF_QAG_PORT_TARGET_ATTRIBUTES_E - (sip_5_20) EGF_QAG : physical port target attribute table
 *  PRV_CPSS_DXCH_BOBCAT3_TABLE_TTI_PHYSICAL_PORT_ATTRIBUTE_2_E - (sip_5_20) TTI : physical port target attribute table 2
 *  PRV_CPSS_DXCH_BOBCAT3_TABLE_EQ_TX_PROTECTION_LOC_E  - (sip_5_20) EQ : TX protection LOC table
 *  PRV_CPSS_DXCH_BOBCAT3_TABLE_EGF_QAG_TC_DP_MAPPER_E  - (sip_5_20) EGF_QAG : TC,DP mapping table
 *
 *   ------------ MULTI-instance support
 *   PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_TXQ_EGRESS_STC____DQ_1___E    - PRV_CPSS_DXCH_LION_TABLE_TXQ_EGRESS_STC_E : DQ[1]
 *   PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_TXQ_EGRESS_STC____DQ_LAST___E - PRV_CPSS_DXCH_LION_TABLE_TXQ_EGRESS_STC_E : DQ[5]
 *
 *   PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_SHAPER_PER_PORT_TOKEN_BUCKET_CONFIG____DQ_1___E    - PRV_CPSS_DXCH_LION_TABLE_TXQ_SHAPER_PER_PORT_TOKEN_BUCKET_CONFIG_E : DQ[1]
 *   PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_SHAPER_PER_PORT_TOKEN_BUCKET_CONFIG____DQ_LAST___E - PRV_CPSS_DXCH_LION_TABLE_TXQ_SHAPER_PER_PORT_TOKEN_BUCKET_CONFIG_E : DQ[5]
 *
 *   PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_SHAPER_PER_PORT_PER_PRIO_TOKEN_BUCKET_CONFIG____DQ_1___E    - PRV_CPSS_DXCH_LION_TABLE_TXQ_SHAPER_PER_PORT_PER_PRIO_TOKEN_BUCKET_CONFIG_E : DQ[1]
 *   PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_SHAPER_PER_PORT_PER_PRIO_TOKEN_BUCKET_CONFIG____DQ_LAST___E - PRV_CPSS_DXCH_LION_TABLE_TXQ_SHAPER_PER_PORT_PER_PRIO_TOKEN_BUCKET_CONFIG_E : DQ[5]
 *
 *  PRV_CPSS_DXCH_BOBCAT3_TABLE_LAST_E - last table ID supported by Bobcat3 devices
 *
 *  PRV_CPSS_DXCH_TABLE_LAST_E - last table (must be last enum value)
 *
 *  NOTE:
 *
*/

typedef enum
{
    PRV_CPSS_DXCH_TABLE_VLAN_PORT_PROTOCOL_E = 0,
    PRV_CPSS_DXCH_TABLE_PORT_VLAN_QOS_E,
    PRV_CPSS_DXCH_TABLE_TRUNK_MEMBERS_E,
    PRV_CPSS_DXCH_TABLE_STATISTICAL_RATE_LIMIT_E,
    PRV_CPSS_DXCH_TABLE_CPU_CODE_E,
    PRV_CPSS_DXCH_TABLE_PCL_CONFIG_E,     /*first lookup (00)*/
    PRV_CPSS_DXCH_TABLE_QOS_PROFILE_E,
    PRV_CPSS_DXCH_TABLE_REMARKING_E,
    PRV_CPSS_DXCH_TABLE_STG_E,
    PRV_CPSS_DXCH_TABLE_VLAN_E,
    PRV_CPSS_DXCH_TABLE_MULTICAST_E,
    PRV_CPSS_DXCH_TABLE_ROUTE_HA_MAC_SA_E,
    PRV_CPSS_DXCH_TABLE_ROUTE_HA_ARP_DA_E, /* only in CH 1 - for others see 'tunnel start' */
    PRV_CPSS_DXCH_TABLE_FDB_E,
    PRV_CPSS_DXCH_TABLE_POLICER_E,
    PRV_CPSS_DXCH_TABLE_POLICER_COUNTERS_E,
    PRV_CPSS_DXCH2_TABLE_EGRESS_PCL_CONFIG_E,
    PRV_CPSS_DXCH2_TABLE_TUNNEL_START_CONFIG_E,
    PRV_CPSS_DXCH2_TABLE_QOS_PROFILE_TO_ROUTE_BLOCK_E,
    PRV_CPSS_DXCH2_TABLE_ROUTE_ACCESS_MATRIX_E,
    PRV_CPSS_DXCH2_LTT_TT_ACTION_E,
    PRV_CPSS_DXCH2_UC_MC_ROUTE_NEXT_HOP_E,
    PRV_CPSS_DXCH2_ROUTE_NEXT_HOP_AGE_E,
    PRV_CPSS_DXCH3_TABLE_MAC2ME_E,
    PRV_CPSS_DXCH3_TABLE_INGRESS_VLAN_TRANSLATION_E,
    PRV_CPSS_DXCH3_TABLE_EGRESS_VLAN_TRANSLATION_E,
    PRV_CPSS_DXCH3_TABLE_VRF_ID_E,
    PRV_CPSS_DXCH3_LTT_TT_ACTION_E,
    PRV_CPSS_DXCH_XCAT_TABLE_INGRESS_PCL_LOOKUP1_CONFIG_E,/*third lookup(1)*/
    PRV_CPSS_DXCH_XCAT_TABLE_INGRESS_PCL_UDB_CONFIG_E,
    PRV_CPSS_DXCH_XCAT_TABLE_LOGICAL_TARGET_MAPPING_E,
    PRV_CPSS_DXCH_XCAT_TABLE_BCN_PROFILES_E,
    PRV_CPSS_DXCH_XCAT_TABLE_EGRESS_POLICER_REMARKING_E,
    PRV_CPSS_DXCH_XCAT_TABLE_EQ_VLAN_MAPPING_E,
    PRV_CPSS_DXCH_XCAT_TABLE_EQ_LP_EGRESS_VLAN_MEMBER_E,
    PRV_CPSS_DXCH_XCAT_TABLE_MLL_L2MLL_VIDX_ENABLE_E,
    PRV_CPSS_DXCH_XCAT_TABLE_MLL_L2MLL_POINTER_MAPPING_E,

    /* must be last for XCAT supported tables */
    PRV_CPSS_DXCH_XCAT_TABLE_LAST_E,

    /* must be last for XCAT3 supported tables */
    PRV_CPSS_DXCH_XCAT3_TABLE_LAST_E =
        PRV_CPSS_DXCH_XCAT_TABLE_LAST_E,

    /* based on the end of XCAT values end */
    PRV_CPSS_DXCH_XCAT2_TABLE_INGRESS_PCL_LOOKUP01_CONFIG_E = /*second lookup(01)*/
        PRV_CPSS_DXCH_XCAT3_TABLE_LAST_E,

    /* supported in XCAT2, Lion and above devices*/
    PRV_CPSS_DXCH_LION_TABLE_TRUNK_HASH_MASK_CRC_E,

    /* must be last for XCAT2 supported tables */
    PRV_CPSS_DXCH_XCAT2_TABLE_LAST_E,

    /* based on the end of XCAT2 values end */
    PRV_CPSS_DXCH_LION_TABLE_VLAN_INGRESS_E =
        PRV_CPSS_DXCH_XCAT2_TABLE_LAST_E,
    PRV_CPSS_DXCH_LION_TABLE_VLAN_EGRESS_E,
    PRV_CPSS_DXCH_LION_TABLE_STG_INGRESS_E,
    PRV_CPSS_DXCH_LION_TABLE_STG_EGRESS_E,
    PRV_CPSS_DXCH_LION_TABLE_PORT_ISOLATION_L2_E,
    PRV_CPSS_DXCH_LION_TABLE_PORT_ISOLATION_L3_E,

    PRV_CPSS_DXCH_LION_TABLE_TXQ_SHAPER_PER_PORT_PER_PRIO_TOKEN_BUCKET_CONFIG_E,
    PRV_CPSS_DXCH_LION_TABLE_TXQ_SHAPER_PER_PORT_TOKEN_BUCKET_CONFIG_E,

    PRV_CPSS_DXCH_LION_TABLE_TXQ_SOURCE_ID_MEMBERS_E,
    PRV_CPSS_DXCH_LION_TABLE_TXQ_NON_TRUNK_MEMBERS_E,
    PRV_CPSS_DXCH_LION_TABLE_TXQ_DESIGNATED_PORT_E,
    PRV_CPSS_DXCH_LION_TABLE_TXQ_EGRESS_STC_E,

    PRV_CPSS_DXCH_LION_TABLE_ROUTER_VLAN_URPF_STC_E,

    /* must be last for LION supported tables */
    PRV_CPSS_DXCH_LION_TABLE_LAST_E,

    /* must be last for LION2 supported tables */
    PRV_CPSS_DXCH_LION2_TABLE_LAST_E,

    /* based on the end of LION values end */
    PRV_CPSS_DXCH_LION3_TABLE_TTI_PHYSICAL_PORT_ATTRIBUTE_E =
        PRV_CPSS_DXCH_LION2_TABLE_LAST_E,
    PRV_CPSS_DXCH_LION3_TABLE_PRE_TTI_LOOKUP_INGRESS_EPORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_POST_TTI_LOOKUP_INGRESS_EPORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_BRIDGE_INGRESS_EPORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_BRIDGE_INGRESS_EPORT_LEARN_PRIO_E,
    PRV_CPSS_DXCH_LION3_TABLE_BRIDGE_SOURCE_TRUNK_ATTRIBUTE_E,
    PRV_CPSS_DXCH_LION3_TABLE_BRIDGE_PHYSICAL_PORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_BRIDGE_PHYSICAL_PORT_RATE_LIMIT_COUNTERS_E,

    PRV_CPSS_DXCH_LION3_TABLE_EQ_INGRESS_EPORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_EQ_INGRESS_STC_PHYSICAL_PORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_EQ_INGRESS_MIRROR_PHYSICAL_PORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_EQ_TRUNK_LTT_E,
    PRV_CPSS_DXCH_LION3_TABLE_EQ_L2_ECMP_LTT_E,
    PRV_CPSS_DXCH_LION3_TABLE_EQ_L2_ECMP_E,
    PRV_CPSS_DXCH_LION3_TABLE_EQ_EPORT_TO_PHYSICAL_PORT_TARGET_MAPPING_E,
    PRV_CPSS_DXCH_LION3_TABLE_EQ_TO_CPU_RATE_LIMITER_CONFIG_E,
    PRV_CPSS_DXCH_LION3_TABLE_EQ_TX_PROTECTION_E,
    PRV_CPSS_DXCH_LION3_TABLE_EQ_EPORT_TO_LOC_MAPPING_E,
    PRV_CPSS_DXCH_LION3_TABLE_EQ_PROTECTION_LOC_E,

    PRV_CPSS_DXCH_LION3_TABLE_LPM_MEM_E,
    PRV_CPSS_DXCH_LION3_TABLE_IPV4_VRF_E,
    PRV_CPSS_DXCH_LION3_TABLE_IPV6_VRF_E,
    PRV_CPSS_DXCH_LION3_TABLE_FCOE_VRF_E,
    PRV_CPSS_DXCH_LION3_TABLE_ECMP_E,

    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_EFT_FAST_STACK_FAILOVER_SECONDARY_TARGET_PORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_QAG_EGRESS_EPORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_QAG_EGRESS_VLAN_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_QAG_TARGET_PORT_MAPPER_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_QAG_CPU_CODE_TO_LOOPBACK_MAPPER_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_QAG_FWD_FROM_CPU_TO_LOOPBACK_MAPPER_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_EGRESS_EPORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_DEVICE_MAP_TABLE_E,
    PRV_CPSS_DXCH_LION3_TABLE_HA_EGRESS_EPORT_1_E,
    PRV_CPSS_DXCH_LION3_TABLE_HA_EGRESS_EPORT_2_E,
    PRV_CPSS_DXCH_LION3_TABLE_HA_PHYSICAL_PORT_1_E,
    PRV_CPSS_DXCH_LION3_TABLE_HA_PHYSICAL_PORT_2_E,
    PRV_CPSS_DXCH_LION3_TABLE_HA_QOS_PROFILE_TO_EXP_E,
    PRV_CPSS_DXCH_LION3_TABLE_HA_EPCL_UDB_CONFIG_E,
    PRV_CPSS_DXCH_LION3_TABLE_HA_PTP_DOMAIN_E,
    PRV_CPSS_DXCH_LION3_TABLE_HA_GENERIC_TS_PROFILE_E,
    PRV_CPSS_DXCH_LION3_TABLE_HA_GLOBAL_MAC_SA_E,
    PRV_CPSS_DXCH_LION3_TABLE_IP_MLL_E,
    PRV_CPSS_DXCH_LION3_TABLE_L2_MLL_E,
    PRV_CPSS_DXCH_LION3_TABLE_L2_MLL_LTT_E,
    PRV_CPSS_DXCH_LION3_TABLE_ADJACENCY_E,
    PRV_CPSS_DXCH_LION3_TABLE_RBID_E,

    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_E_ATTRIBUTES_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_REMARKING_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_HIERARCHICAL_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_0_METERING_E,

    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_1_E_ATTRIBUTES_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_1_REMARKING_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_POLICER_1_METERING_E,

    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_POLICER_E_ATTRIBUTES_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_POLICER_METERING_E,

    PRV_CPSS_DXCH_LION3_TABLE_IPVX_INGRESS_EPORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_IPVX_EVLAN_E,
    PRV_CPSS_DXCH_LION3_TABLE_IPVX_ROUTER_NEXTHOP_E,
    PRV_CPSS_DXCH_LION3_TABLE_IPVX_ROUTER_NEXTHOP_AGE_BITS_E,
    PRV_CPSS_DXCH_LION3_TABLE_IPVX_ROUTER_ACCESS_MATRIX_E,
    PRV_CPSS_DXCH_LION3_TABLE_IPVX_ROUTER_QOS_PROFILE_OFFSETS_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_KEEPALIVE_AGING_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_MEG_EXCEPTION_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_SOURCE_INTERFACE_EXCEPTION_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_INVALID_KEEPALIVE_HASH_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_KEEPALIVE_EXCESS_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_EXCEPTION_SUMMARY_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_RDI_STATUS_CHANGE_EXCEPTION_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_TX_PERIOD_EXCEPTION_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_OAM_OPCODE_PACKET_COMMAND_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_KEEPALIVE_AGING_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_MEG_EXCEPTION_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_SOURCE_INTERFACE_EXCEPTION_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_INVALID_KEEPALIVE_HASH_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_KEEPALIVE_EXCESS_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_EXCEPTION_SUMMARY_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_RDI_STATUS_CHANGE_EXCEPTION_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_TX_PERIOD_EXCEPTION_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_OAM_OPCODE_PACKET_COMMAND_E,
    PRV_CPSS_DXCH_LION3_TABLE_OAM_LM_OFFSET_E,

    PRV_CPSS_DXCH_LION3_TABLE_TTI_QOS_MAP_DSCP_TO_QOS_PROFILE_E,
    PRV_CPSS_DXCH_LION3_TABLE_TTI_QOS_MAP_UP_CFI_TO_QOS_PROFILE_E,
    PRV_CPSS_DXCH_LION3_TABLE_TTI_QOS_MAP_EXP_TO_QOS_PROFILE_E,
    PRV_CPSS_DXCH_LION3_TABLE_TTI_QOS_MAP_DSCP_TO_DSCP_E,
    PRV_CPSS_DXCH_LION3_TABLE_TTI_UDB_CONFIG_E,
    PRV_CPSS_DXCH_LION3_TABLE_TTI_PTP_COMMAND_E,

    PRV_CPSS_DXCH_LION3_TABLE_IPCL0_UDB_SELECT_E,
    PRV_CPSS_DXCH_LION3_TABLE_IPCL1_UDB_SELECT_E,
    PRV_CPSS_DXCH_LION3_TABLE_IPCL2_UDB_SELECT_E,

    PRV_CPSS_DXCH_LION3_TABLE_TCAM_PCL_TTI_ACTION_E,

    PRV_CPSS_DXCH_LION3_TABLE_ERMRK_TIMESTAMP_CFG_E,
    PRV_CPSS_DXCH_LION3_TABLE_ERMRK_PTP_LOCAL_ACTION_E,
    PRV_CPSS_DXCH_LION3_TABLE_ERMRK_PTP_TARGET_PORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_ERMRK_PTP_SOURCE_PORT_E,
    PRV_CPSS_DXCH_LION3_TABLE_ERMRK_QOS_DSCP_MAP_E,
    PRV_CPSS_DXCH_LION3_TABLE_ERMRK_QOS_TC_DP_MAP_E,

    PRV_CPSS_DXCH_LION3_TABLE_TCAM_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_BRIDGE_PORT_MEMBERS_E,
    PRV_CPSS_DXCH_LION3_TABLE_INGRESS_SPAN_STATE_GROUP_INDEX_E,

    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_VLAN_ATTRIBUTES_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_VLAN_SPANNING_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_VLAN_MAPPER_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_NON_TRUNK_MEMBERS2_E,
    PRV_CPSS_DXCH_LION3_TABLE_EGRESS_EGF_SHT_EPORT_FILTER_E,

    PRV_CPSS_DXCH_LION3_TABLE_EPCL_UDB_SELECT_E,

    PRV_CPSS_DXCH_LION3_TABLE_BMA_PORT_MAPPING_E,
    PRV_CPSS_DXCH_LION3_TABLE_BMA_MULTICAST_COUNTERS_E,

    PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_MAX_QUEUE_LIMITS_E,
    PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_EQ_QUEUE_LIMITS_DP0_E,
    PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_DQ_QUEUE_BUF_LIMITS_E,
    PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_DQ_QUEUE_DESC_LIMITS_E,
    PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_EQ_QUEUE_LIMITS_DP1_E,
    PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_EQ_QUEUE_LIMITS_DP2_E,

    PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_COUNTERS_Q_MAIN_BUFF_E,
    PRV_CPSS_DXCH_LION3_TABLE_TAIL_DROP_COUNTERS_Q_MAIN_MC_BUFF_E,

    PRV_CPSS_DXCH_LION3_TABLE_TXQ_LINK_LIST_COUNTERS_Q_MAIN_DESC_E,

    PRV_CPSS_DXCH_LION3_TABLE_PFC_MODE_PROFILE_TC_XOFF_THRESHOLDS_E,
    PRV_CPSS_DXCH_LION3_TABLE_PFC_MODE_PROFILE_TC_XON_THRESHOLDS_E,
    PRV_CPSS_DXCH_LION3_TABLE_PFC_LLFC_COUNTERS_E,

    PRV_CPSS_DXCH_LION3_TABLE_TM_DROP_DROP_MASKING_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_DROP_QUEUE_PROFILE_ID_E,

    PRV_CPSS_DXCH_LION3_TABLE_TM_QMAP_CPU_CODE_TO_TC_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_QMAP_TARGET_DEV_TO_INDEX_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_QMAP_POLICING_ENABLE_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_QMAP_QUEUE_ID_SELECTOR_E,

    PRV_CPSS_DXCH_LION3_TABLE_TM_INGR_GLUE_L1_PKT_LEN_OFFSET_E,

    PRV_CPSS_DXCH_LION3_TABLE_TM_EGR_GLUE_AGING_QUEUE_PROFILE_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_EGR_GLUE_AGING_PROFILE_THESHOLDS_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_EGR_GLUE_TARGET_INTERFACE_E,

    PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_ETH_DMA_TO_TM_PORT_MAPPING_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_ILK_DMA_TO_TM_PORT_MAPPING_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_TC_PORT_TO_CNODE_PORT_MAPPING_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_PORT_INGRESS_TIMERS_CONFIG_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_INGRESS_TIMERS_E,
    PRV_CPSS_DXCH_LION3_TABLE_TM_FCU_PORT_TO_PHYSICAL_PORT_MAPPING_E,

    PRV_CPSS_DXCH_LION3_TABLE_CN_SAMPLE_INTERVALS_E,

    /* must be last for LION3 supported tables */
    PRV_CPSS_DXCH_LION3_TABLE_LAST_E,
    /* bobcat2 have no extra tables */
    PRV_CPSS_DXCH_BOBCAT2_TABLE_LAST_E = PRV_CPSS_DXCH_LION3_TABLE_LAST_E,

    PRV_CPSS_DXCH_BOBK_TABLE_INGRESS_POLICER_0_METERING_CONFIG_E,
    PRV_CPSS_DXCH_BOBK_TABLE_INGRESS_POLICER_1_METERING_CONFIG_E,
    PRV_CPSS_DXCH_BOBK_TABLE_EGRESS_POLICER_METERING_CONFIG_E,

    PRV_CPSS_DXCH_BOBK_TABLE_INGRESS_POLICER_0_METERING_CONFORM_SIGN_E,
    PRV_CPSS_DXCH_BOBK_TABLE_INGRESS_POLICER_1_METERING_CONFORM_SIGN_E,
    PRV_CPSS_DXCH_BOBK_TABLE_EGRESS_POLICER_METERING_CONFORM_SIGN_E,

    PRV_CPSS_DXCH_BOBK_TABLE_LAST_E,

    PRV_CPSS_DXCH_BOBCAT3_TABLE_EGF_QAG_PORT_TARGET_ATTRIBUTES_E,
    PRV_CPSS_DXCH_BOBCAT3_TABLE_TTI_PHYSICAL_PORT_ATTRIBUTE_2_E,
    PRV_CPSS_DXCH_BOBCAT3_TABLE_EQ_TX_PROTECTION_LOC_E,
    PRV_CPSS_DXCH_BOBCAT3_TABLE_EGF_QAG_TC_DP_MAPPER_E,

    /* MULTI-instance support */
    PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_TXQ_EGRESS_STC____DQ_1___E,        /* DQ[1] */
    PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_TXQ_EGRESS_STC____DQ_LAST___E =    /* DQ[5] */
        PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_TXQ_EGRESS_STC____DQ_1___E + 4,

    PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_SHAPER_PER_PORT_TOKEN_BUCKET_CONFIG____DQ_1___E,         /* DQ[1] */
    PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_SHAPER_PER_PORT_TOKEN_BUCKET_CONFIG____DQ_LAST___E =     /* DQ[5] */
        PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_SHAPER_PER_PORT_TOKEN_BUCKET_CONFIG____DQ_1___E+4,

    PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_SHAPER_PER_PORT_PER_PRIO_TOKEN_BUCKET_CONFIG____DQ_1___E,      /* DQ[1] */
    PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_SHAPER_PER_PORT_PER_PRIO_TOKEN_BUCKET_CONFIG____DQ_LAST___E=   /* DQ[5] */
        PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_SHAPER_PER_PORT_PER_PRIO_TOKEN_BUCKET_CONFIG____DQ_1___E+4,

    PRV_CPSS_DXCH_BOBCAT3_MULTI_INSTANCE_TABLE_EQ_INGRESS_STC_PHYSICAL_PORT___PIPE_1___E, /* pipe[1] */


    PRV_CPSS_DXCH_BOBCAT3_TABLE_LAST_E,

    /* must be last */
    PRV_CPSS_DXCH_TABLE_LAST_E

} PRV_CPSS_DXCH_TABLE_ENT;

/*
 * Typedef: struct PRV_CPSS_DXCH_PP_TABLE_FORMAT_INFO_STC
 *
 * Description: A structure to hold device tables format info.
 *
 * Fields:
 *      numFields       - number of fields in table entry
 *      fieldsInfoPtr   - pointer to table fields info
 *      patternNum      - number of patterns in table entry
 *      patternBits     - number of bits in pattern
 */
typedef struct
{
    GT_U32                              numFields;
    PRV_CPSS_ENTRY_FORMAT_TABLE_STC *   fieldsInfoPtr;
    GT_U32                              patternNum;
    GT_U32                              patternBits;
}PRV_CPSS_DXCH_PP_TABLE_FORMAT_INFO_STC;

/** Typedef: enum PRV_CPSS_DXCH_TABLE_FORMAT_ENT
 *
 * Description:
 *      Enumerator of tables formats names
 *
 *
 * Enumerations:
 *   PRV_CPSS_DXCH_TABLE_FORMAT_TTI_DEFAULT_EPORT_E -
 *      Pre-TTI lookup ingress ePort table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_TTI_PHYSICAL_PORT_ATTRIBUTE_E -
 *      TTI Physical port attributes table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_TTI_EPORT_ATTRIBUTES_E -
 *      Post TTI lookup ingress table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_VLAN_PORT_PROTOCOL_E -
 *      Vlan port protocol table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_BRIDGE_INGRESS_EVLAN_E -
 *      Ingress VLAN table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_BRIDGE_INGRESS_EPORT_E -
 *      Bridge ingress ePort table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_FDB_E -
 *      FDB table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_IP_MLL_E -
 *      IP MLL table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_L2_MLL_E -
 *      L2 MLL table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_EGF_QAG_EGRESS_EPORT_E -
 *      EGF_QAG - egress ePort table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_EGF_SHT_EGRESS_EVLAN_E -
 *      Egress VLAN table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_EGF_SHT_VLAN_ATTRIBUTES_E -
 *      egress VLAN attributes table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_EGF_SHT_EGRESS_EPORT_E -
 *      ePort egress table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_HA_EGRESS_EPORT_1_E -
 *      Header Alteration egress ePort table 1 format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_HA_EGRESS_EPORT_2_E -
 *      Header Alteration egress ePort table 2 format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_HA_PHYSICAL_PORT_1_E -
 *      Header Alteration physical port table 1 table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_HA_PHYSICAL_PORT_2_E -
 *      Header Alteration physical port table 2 table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_TUNNEL_START_E -
 *      TS table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_HA_GENERIC_TS_PROFILE_E -
 *      Generic Tunnel Start Profile table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_IPCL_ACTION_E -
 *      IPCL action format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_EPCL_ACTION_E -
 *      EPCL action format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_FDB_AU_MSG_E -
 *      AU message format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_IPVX_ROUTER_NEXT_HOP_E -
 *      IPvX router next hop format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_NAT44_E -
 *      NAT44 table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_NAT66_E -
 *      NAT66 table format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_ROUTER_EPORT_E -
 *      IPvX router ePort format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_PLR_METER_E -
 *      PLR metering entry format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_PLR_METER_CONFIG_E -
 *      PLR metering entry format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_PLR_METER_CONFORM_SIGN_E -
 *      PLR metering conformance sign entry format
 *   PRV_CPSS_DXCH_TABLE_FORMAT_EGF_QAG_PORT_TARGET_ATTRIBUTES_E -
 *      EGF_QAG : physical port target attribute table
 *                new in sip_5_20
 *   PRV_CPSS_DXCH_TABLE_FORMAT_TTI_ACTION_E -
 *      TTI action entry format (from sip5)
*/
typedef enum
{
    PRV_CPSS_DXCH_TABLE_FORMAT_TTI_DEFAULT_EPORT_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_TTI_PHYSICAL_PORT_ATTRIBUTE_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_TTI_EPORT_ATTRIBUTES_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_VLAN_PORT_PROTOCOL_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_BRIDGE_INGRESS_EVLAN_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_BRIDGE_INGRESS_EPORT_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_FDB_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_IP_MLL_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_L2_MLL_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_EGF_QAG_EGRESS_EPORT_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_EGF_SHT_EGRESS_EVLAN_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_EGF_SHT_VLAN_ATTRIBUTES_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_EGF_SHT_EGRESS_EPORT_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_HA_EGRESS_EPORT_1_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_HA_EGRESS_EPORT_2_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_HA_PHYSICAL_PORT_1_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_HA_PHYSICAL_PORT_2_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_TUNNEL_START_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_HA_GENERIC_TS_PROFILE_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_IPCL_ACTION_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_EPCL_ACTION_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_FDB_AU_MSG_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_IPVX_ROUTER_NEXT_HOP_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_NAT44_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_NAT66_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_ROUTER_EPORT_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_PLR_METER_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_PLR_METER_CONFIG_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_PLR_METER_CONFORM_SIGN_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_EGF_QAG_PORT_TARGET_ATTRIBUTES_E,
    PRV_CPSS_DXCH_TABLE_FORMAT_TTI_ACTION_E,

    /* must be last */
    PRV_CPSS_DXCH_TABLE_LAST_FORMAT_E

}PRV_CPSS_DXCH_TABLE_FORMAT_ENT;

/*
 * Typedef: struct PRV_CPSS_DXCH_TABLES_INFO_INDIRECT_STC
 *
 * Description: A structure to hold Cheetah's indirect access table entry info.
 *
 * Fields:
 *      controlReg   - address of the control register
 *      dataReg      - address of the data register of the entry
 *      trigBit      - the bit num that trig the action in the control register
 *      indexBit     - bit where to write the index (of entry)
 *      specificTableValue - some tables share the same control registers ,
 *                           this value is the specific table
 *      specificTableBit   - start bit for the specificTableValue
 *      actionBit          - the bit number where to specify the action (read/write)
 */


typedef struct
{
    GT_U32  controlReg;
    GT_U32  dataReg;
    GT_U32  trigBit;
    GT_U32  indexBit;
    GT_U32  specificTableValue;
    GT_U32  specificTableBit;
    GT_U32  actionBit;
} PRV_CPSS_DXCH_TABLES_INFO_INDIRECT_STC;

/*
 * Typedef: struct PRV_CPSS_DXCH_TABLES_INFO_DIRECT_STC
 *
 * Description: A structure to hold Cheetah's direct access table entry info.
 *
 * Fields:
 *      baseAddress    - base address
 *      step           - step in entry promotion
 *      nextWordOffset - next word offest value in bytes.
 */

typedef struct
{
    GT_U32  baseAddress;
    GT_U32  step;
    GT_U32  nextWordOffset;
} PRV_CPSS_DXCH_TABLES_INFO_DIRECT_STC;


/*
 * Typedef: struct PRV_CPSS_DXCH_TABLES_INFO_STC
 *
 * Description: A structure to hold Cheetah's direct access table entry info.
 *
 * Fields:
 *      maxNumOfEntries  - number of entries
 *      entrySize        - size in words
 *      readAccessType   - direct/indirect access for read action
 *      readTablePtr     - address of table for read action
 *      writeAccessType  - direct/indirect access for write action
 *      writeTablePtr    - address of table for write action
 */

typedef struct
{
    GT_U32                              maxNumOfEntries;
    GT_U32                              entrySize;
    PRV_CPSS_DXCH_TABLE_ACCESS_TYPE_ENT readAccessType;
    GT_VOID                            *readTablePtr;
    PRV_CPSS_DXCH_TABLE_ACCESS_TYPE_ENT writeAccessType;
    GT_VOID                            *writeTablePtr;

} PRV_CPSS_DXCH_TABLES_INFO_STC;

/**************************************************/
/********** TTI UNIT START ************************/
/**************************************************/
/*
 * Typedef: enum LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of default Eport table.
 *
 */
typedef enum{
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_PROT_BASED_QOS_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_PROT_BASED_VLAN_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_DEF_TAG1_VLAN_ID_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_PORT_UP0_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_INGRESS_TAG0_TPID_PROFILE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_INGRESS_TAG1_TPID_PROFILE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_VLAN_TRANSLATION_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_P_VID_PRECEDENCE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_P_EVLAN_MODE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_P_EVLAN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TTI_802_1AH_MAC_TO_ME_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_EN_802_1AH_TTI_LOOKUP_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_ETHERNET_CLASSIFIER_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_MPLS_TUNNEL_TERMINATION_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TTI_MPLS_MAC_TO_ME_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TTI_IPV4_MAC_TO_ME_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_IPV4_TTI_FOR_TT_ONLY_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_IPV4_TUNNEL_TERMINATION_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_EXTENDED_DSA_BYPASS_BRIDGE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_PORT_QOS_PROFILE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TRUST_DSA_TAG_QOS_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TRUST_EXP_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TRUST_DSCP_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TRUST_UP_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_MAP_DSCP_TO_DSCP_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TRUST_QOS_MAPPING_TABLE_INDEX_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_PORT_MODIFY_DSCP_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_PORT_MODIFY_UP_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_PORT_QOS_PRECEDENCE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_NESTED_VLAN_ACCESS_PORT_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_OVERSIZE_UNTAGGED_PKTS_FILTER_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TRILL_ENGINE_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TRILL_INGRESS_OUTER_VID0_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TTI_802_1AH_PASSENGER_STAG_IS_TAG0_1_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_IPV4_6_TOTAL_LENGTH_DEDUCTION_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_OAM_LINK_LAYER_PDU_TRAP_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_OAM_LINK_LAYER_LOOPBACK_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_UP_CFI_TO_QOS_TABLE_SELECT_MODE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_LOOKUP0_PCL_CFG_MODE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_LOOKUP1_PCL_CFG_MODE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_LOOKUP2_PCL_CFG_MODE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_ASSIGN_VF_ID_EN_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TRUST_L2_QOS_TAG0_OR_TAG1_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TTI_PKT_TYPE_UDB_KEY_I_ENABLE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_IPV4_MC_DUPLICATION_MODE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_IPV6_MC_DUPLICATION_MODE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_MPLS_MC_DUPLICATION_ENABLE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_TRILL_MC_DUPLICATION_ENABLE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_PBB_MC_DUPLICATION_ENABLE_E,
    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_MRU_INDEX_E,

    LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS___LAST_VALUE___E /* used for array size */
}LION3_TTI_DEFAULT_EPORT_TABLE_FIELDS_ENT;




/*
 * Typedef: enum LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of physical port table.
 *
 */
typedef enum{
    LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_PORT_DEFAULT_SOURCE_EPORT_NUMBER_E,
    LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_PORT_IS_RING_CORE_PORT_E,
    LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_PORT_IS_LOOPED_E,
    LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_ENABLE_MRU_CHECK_ON_CASCADE_PORT_E,
    LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_CC_LINE_CARD_PORTS_DEFAULT_EPORT_BASE_E,
    LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_CC_LINE_CARD_TRUNK_DEFAULT_EPORT_BASE_E,
    LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_CENTRALIZED_CHASSIS_PORT_ENABLE_E,
    LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_TRUNK_ID_E,
    LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_PORT_QOS_MODE_E,

    LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS___LAST_VALUE___E /* used for array size */
}LION3_TTI_PHYSICAL_PORT_TABLE_FIELDS_ENT;




/*
 * Typedef: enum LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of ePort Attributes Table.
 *
 */
typedef enum{
    LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_ING_TAG0_TPID_PROFILE_E,
    LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_ING_TAG1_TPID_PROFILE_E,
    LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_NUM_OF_TAGS_TO_POP_E,
    LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_ING_POLICY_EN_E,
    LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_DIS_IPCL0_FOR_ROUTED_E,
    LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_TRUST_L2_QOS_TAG0_OR_TAG1_E,
    LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_OVERRIDE_MASK_HASH_EN_E,
    LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_HASH_MASK_INDEX_E,
    LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_PHY_SRC_MC_FILTERING_EN_E,

    LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS___LAST_VALUE___E /* used for array size */
}LION3_TTI_EPORT_ATTRIBUTES_TABLE_FIELDS_ENT;




/*
 * Typedef: enum LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of Default Port Protocol eVLAN and QoS Configuration table.
 *
 */
typedef enum{
    LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_PROTOCOL_EVLAN_E,
    LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_EVLAN_COMMAND_E,
    LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_EVLAN_PRECEDENCE_E,
    LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_VALID_E,
    LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_PROTOCOL_MODIFY_UP_E,
    LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_PROTOCOL_MODIFY_DSCP_E,
    LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_PROTOCOL_MODIFY_QOS_PROFILE_E,
    LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_QOS_PROFILE_E,
    LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_PROTOCOL_QOS_PRECEDENCE_E,

    LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS___LAST_VALUE___E /* used for array size */

}LION3_TTI_DEFAULT_PORT_PROTOCOL_EVLAN_AND_QOS_CONFIGURATION_TABLE_FIELDS_ENT;


/* the fields of the (TTI) action table in Sip5 */
typedef enum{
    LION3_TTI_ACTION_TABLE_FIELDS_COMMAND_E
,   LION3_TTI_ACTION_TABLE_FIELDS_CPU_CODE_E
,   LION3_TTI_ACTION_TABLE_FIELDS_MIRROR_TO_ANALYZER_PORT_E
,   LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_CMD_E

/*If <Redirect Command> = No Redirect (0)*/
,      LION3_TTI_ACTION_TABLE_FIELDS_NO_REDIRECT_FLOW_ID_E
,      LION3_TTI_ACTION_TABLE_FIELDS_NO_REDIRECT_IPCL_UDB_CONFIGURATION_TABLE_UDE_INDEX_E
,      LION3_TTI_ACTION_TABLE_FIELDS_NO_REDIRECT_RESERVED_E
/*     <Redirect Command> != Egress_Interface (0,2,3..)*/
,      LION3_TTI_ACTION_TABLE_FIELDS_NO_REDIRECT_TO_EGRESS_INTERFACE_TTI_RESERVED_ENABLE_E
,      LION3_TTI_ACTION_TABLE_FIELDS_NO_REDIRECT_TO_EGRESS_INTERFACE_TTI_RESERVED_VALUE_E
,      LION3_TTI_ACTION_TABLE_FIELDS_NO_REDIRECT_TO_EGRESS_INTERFACE_POLICY2_LOOKUP_MODE_E
,      LION3_TTI_ACTION_TABLE_FIELDS_NO_REDIRECT_TO_EGRESS_INTERFACE_POLICY1_LOOKUP_MODE_E
,      LION3_TTI_ACTION_TABLE_FIELDS_NO_REDIRECT_TO_EGRESS_INTERFACE_POLICY0_LOOKUP_MODE_E
,      LION3_TTI_ACTION_TABLE_FIELDS_NO_REDIRECT_TO_EGRESS_INTERFACE_IPCL_PROFILE_INDEX_E

/*else If <Redirect Command> = Redirect to Egress Interface (1)*/
    /*    if <UseVIDX> = 0*/
,            LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_IS_TRUNK_E
    /*    else if <UseVIDX> = 0 & <IsTrunk> = 1*/
,            LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_TRUNK_NUMBER_E
    /*            LION3_TTI_ACTION_TABLE_FIELDS_Redirect_to_Egress_Interface_Reserved*/
    /*    else if <UseVIDX> = 0 & <IsTrunk> = 0*/
,            LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_EPORT_NUMBER_E
,            LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_DEVICE_NUMBER_E
    /*    else, when <UseVIDX> = 1*/
,            LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_EVIDX_E
,            LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_RESERVED_E

,        LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_USE_EVIDX_E
,        LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_VNT_L2_ECHO_E
    /*    Tunnel Start*/
,        LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_TUNNEL_START_E

    /*    if (<Tunnel Start> == 1)*/
,            LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_TUNNEL_INDEX_E
,            LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_TUNNEL_START_PASSENGER_TYPE_E
    /*            LION3_TTI_ACTION_TABLE_FIELDS_Redirect_to_Egress_Interface_Reserved*/
    /*    else, <Tunnel Start> == 0*/
,           LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_INTERFACE_ARP_POINTER_E

,       LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_MODIFY_MAC_DA_E
,       LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_EGRESS_MODIFY_MAC_SA_E


/*else If <Redirect Command> = Redirect To Router (2)*/
,       LION3_TTI_ACTION_TABLE_FIELDS_REDIRECT_TO_ROUTER_ROUTER_LTT_INDEX_E
    /*        LION3_TTI_ACTION_TABLE_FIELDS_Redirect To Router    TTI reserved
            LION3_TTI_ACTION_TABLE_FIELDS_Redirect To Router    IPCL Configuration Table Pointer*/
/*else If <Redirect Command> = Assign VRF-ID (4)*/
,       LION3_TTI_ACTION_TABLE_FIELDS_ASSIGN_VRF_ID_VRF_ID_E
    /*        LION3_TTI_ACTION_TABLE_FIELDS_Assign VRF-ID     Reserved
            LION3_TTI_ACTION_TABLE_FIELDS_Assign VRF-ID     TTI reserved
            LION3_TTI_ACTION_TABLE_FIELDS_Assign VRF-ID     IPCL Configuration Table Pointer*/

,    LION3_TTI_ACTION_TABLE_FIELDS_BIND_TO_CNC_COUNTER_E
,    LION3_TTI_ACTION_TABLE_FIELDS_CNC_COUNTER_INDEX_E
,    LION3_TTI_ACTION_TABLE_FIELDS_BIND_TO_POLICER_METER_E
,    LION3_TTI_ACTION_TABLE_FIELDS_BIND_TO_POLICER_COUNTER_E
,    LION3_TTI_ACTION_TABLE_FIELDS_POLICER_INDEX_E
,    LION3_TTI_ACTION_TABLE_FIELDS_SOURCE_ID_SET_ENABLE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_SOURCE_ID_E
,    LION3_TTI_ACTION_TABLE_FIELDS_ACTION_STOP_E
,    LION3_TTI_ACTION_TABLE_FIELDS_BYPASS_BRIDGE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_BYPASS_INGRESS_PIPE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_EVLAN_PRECEDENCE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_ENABLE_NESTED_VLAN_E
,    LION3_TTI_ACTION_TABLE_FIELDS_EVID_CMD_E
,    LION3_TTI_ACTION_TABLE_FIELDS_EVLAN_E
,    LION3_TTI_ACTION_TABLE_FIELDS_VID1_CMD_E
,    LION3_TTI_ACTION_TABLE_FIELDS_VID1_E
,    LION3_TTI_ACTION_TABLE_FIELDS_QOS_PRECEDENCE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_QOS_PROFILE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_MODIFY_DSCP_E
,    LION3_TTI_ACTION_TABLE_FIELDS_MODIFY_UP_E
,    LION3_TTI_ACTION_TABLE_FIELDS_KEEP_PREVIOUS_QOS_E
,    LION3_TTI_ACTION_TABLE_FIELDS_TRUST_UP_E
,    LION3_TTI_ACTION_TABLE_FIELDS_TRUST_DSCP_E
,    LION3_TTI_ACTION_TABLE_FIELDS_TRUST_EXP_E
,    LION3_TTI_ACTION_TABLE_FIELDS_MAP_DSCP_E
,    LION3_TTI_ACTION_TABLE_FIELDS_UP0_E
,    LION3_TTI_ACTION_TABLE_FIELDS_UP1_COMMAND_E
,    LION3_TTI_ACTION_TABLE_FIELDS_UP1_E
,    LION3_TTI_ACTION_TABLE_FIELDS_PASSENGER_PACKET_TYPE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_COPY_TTL_E
,    LION3_TTI_ACTION_TABLE_FIELDS_TUNNEL_TERMINATION_E
,    LION3_TTI_ACTION_TABLE_FIELDS_MPLS_COMMAND_E
,    LION3_TTI_ACTION_TABLE_FIELDS_HASH_MASK_INDEX_E
,    LION3_TTI_ACTION_TABLE_FIELDS_TRUST_QOS_MAPPING_TABLE_INDEX_E
,    LION3_TTI_ACTION_TABLE_FIELDS_L_LSP_QOS_PROFILE_ENABLE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_TTL_E
,    LION3_TTI_ACTION_TABLE_FIELDS_ENABLE_DEC_TTL_E
,    LION3_TTI_ACTION_TABLE_FIELDS_SOURCE_EPORT_ASSIGNMENT_ENABLE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_SOURCE_EPORT_E
,    LION3_TTI_ACTION_TABLE_FIELDS_TT_HEADER_LENGTH_E
,    LION3_TTI_ACTION_TABLE_FIELDS_IS_PTP_PACKET_E

/*If <Is PTP PAcket> = 0*/
,       LION3_TTI_ACTION_TABLE_FIELDS_NON_PTP_PACKET_TIMESTAMP_ENABLE_E
,       LION3_TTI_ACTION_TABLE_FIELDS_NON_PTP_PACKET_OFFSET_INDEX_E
    /*        LION3_TTI_ACTION_TABLE_FIELDS_    reserved*/
/*else If <Is PTP PAcket> =1*/
,       LION3_TTI_ACTION_TABLE_FIELDS_PTP_PACKET_PTP_TRIGGER_TYPE_E
,       LION3_TTI_ACTION_TABLE_FIELDS_PTP_PACKET_PTP_OFFSET_E

,    LION3_TTI_ACTION_TABLE_FIELDS_ENABLE_OAM_PROCESSING_WHEN_GAL_OR_OAL_EXISTS_E
,    LION3_TTI_ACTION_TABLE_FIELDS_OAM_PROCESSING_ENABLE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_CW_BASED_PSEUDO_WIRE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_TTL_EXPIRY_VCCV_ENABLE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_PWE3_FLOW_LABEL_EXIST_E
,    LION3_TTI_ACTION_TABLE_FIELDS_PW_CW_BASED_E_TREE_ENABLE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_UP_CFI_TO_QOS_TABLE_SELECT_MODE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_RX_IS_PROTECTION_PATH_E
,    LION3_TTI_ACTION_TABLE_FIELDS_RX_ENABLE_PROTECTION_SWITCHING_E
,    LION3_TTI_ACTION_TABLE_FIELDS_SET_MAC2ME_E
,    LION3_TTI_ACTION_TABLE_FIELDS_OAM_PROFILE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_APPLY_NON_DATA_CW_COMMAND_E
,    LION3_TTI_ACTION_TABLE_FIELDS_PW_TAG_MODE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_ENABLE_TTI_1_LOOKUP_E
,    LION3_TTI_ACTION_TABLE_FIELDS_CHANNEL_TYPE_TO_OPCODE_MAPPING_EN_E
,    LION3_TTI_ACTION_TABLE_FIELDS_PASSENGER_PARSING_OF_TRANSIT_MPLS_TUNNEL_ENABLE_E
,    LION3_TTI_ACTION_TABLE_FIELDS_PASSENGER_PARSING_OF_NON_MPLS_TRANSIT_TUNNEL_ENABLE_E

,    LION3_TTI_ACTION_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_TTI_ACTION_TABLE_FIELDS_ENT;


/**************************************************/
/********** TTI UNIT END   ************************/
/**************************************************/

/**************************************************/
/********** IPCL UNIT START ***********************/
/**************************************************/

/*
 * Typedef: enum LION3_IPCL_ACTION_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of IPCL Action table - sip5.
 *
 */
typedef enum {
     LION3_IPCL_ACTION_TABLE_FIELDS_COMMAND_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_CPU_CODE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_MIRROR_TO_ANALYZER_PORT_0_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_REDIRECT_COMMAND_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_RESERVED_46_15_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_POLICY1_LOOKUP_MODE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_POLICY2_LOOKUP_MODE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_IPCL_PROFILE_INDEX_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_RESERVED_17_15_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_VIDX_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_IS_TRUNK_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_TRG_PORT_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_TARGET_DEVICE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_TRUNK_ID_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_USE_VIDX_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_VNT_L2_ECHO_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_TUNNEL_START_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_ARP_POINTER_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_TUNNEL_POINTER_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_TUNNEL_START_PASSENGER_TYPE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_IP_NEXT_HOP_ENTRY_INDEX_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_VRF_ID_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_MAC_SA_29_0_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_BIND_TO_CNC_COUNTER_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_CNC_COUNTER_INDEX_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_MAC_SA_47_30_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_ACTIVATE_METER_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_BIND_TO_POLICER_COUNTER_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_POLICER_PTR_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_SOURCE_ID_SET_ENABLE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_SOURCE_ID_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_ACTION_STOP_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_BRIDGE_BYPASS_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_BYPASS_INGRESS_PIPE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_VLAN_PRECEDENCE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_EN_NESTED_VLAN_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_VLAN_COMMAND_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_VID0_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_QOS_PROFILE_MARKING_ENABLE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_QOS_PRECEDENCE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_QOS_PROFILE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_MODIFY_DSCP_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_MODIFY_UP_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_ENABLE_MIRROR_TCP_RST_OR_FIN_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_MIRROR_TO_ANALYZER_PORT_2_1_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_MODIFY_MAC_DA_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_MODIFY_MAC_SA_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_SET_EGRESS_FILTER_REGISTERED_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_VLAN1_CMD_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_UP1_CMD_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_VID1_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_UP1_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_FLOW_ID_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_IPCL_RESERVED_EN_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_IPCL_TO_TXQ_RESERVED_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_SET_MAC2ME_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_TIMESTAMP_EN_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_OFFSET_INDEX_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_OAM_PROCESSING_EN_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_OAM_PROFILE_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_ASSIGN_SRC_EPORT_EN_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_SRC_EPORT_E
    ,LION3_IPCL_ACTION_TABLE_FIELDS_USER_AC_ENABLE_E

    ,LION3_IPCL_ACTION_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_IPCL_ACTION_TABLE_FIELDS_ENT;

/*
 * Typedef: enum SIP5_20_IPCL_ACTION_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of IPCL Action table  - sip5_20.
 *
 */
/* the fields of the (IPCL) action table in Sip5_20 (reordered from sip5 !!!) */
typedef enum {
     SIP5_20_IPCL_ACTION_TABLE_FIELDS_CPU_CODE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_COMMAND_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_REDIRECT_COMMAND_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_ACTION_STOP_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_SET_MAC2ME_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_POLICY1_LOOKUP_MODE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_POLICY2_LOOKUP_MODE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_IPCL_PROFILE_INDEX_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_USE_VIDX_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_VIDX_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_IS_TRUNK_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_TRG_PORT_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_TARGET_DEVICE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_TRUNK_ID_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_VNT_L2_ECHO_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_TUNNEL_START_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_ARP_POINTER_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_TUNNEL_POINTER_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_TUNNEL_START_PASSENGER_TYPE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_PBR_MODE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_IP_NEXT_HOP_ENTRY_INDEX_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_VRF_ID_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_MAC_SA_27_0_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_MAC_SA_47_28_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_ACTIVATE_METER_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_BIND_TO_POLICER_COUNTER_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_POLICER_PTR_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_RESERVED_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_ENABLE_MIRROR_TCP_RST_OR_FIN_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_MIRROR_TO_ANALYZER_PORT_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_MODIFY_MAC_DA_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_MODIFY_MAC_SA_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_SET_EGRESS_FILTER_REGISTERED_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_BRIDGE_BYPASS_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_BYPASS_INGRESS_PIPE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_EN_NESTED_VLAN_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_SET_SST_ID_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_SST_ID_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_USER_AC_ENABLE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_ACTIVATE_COUNTER_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_COUNTER_INDEX_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_VLAN_PRECEDENCE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_VLAN_COMMAND_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_VID0_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_QOS_PROFILE_MARKING_ENABLE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_QOS_PRECEDENCE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_QOS_PROFILE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_MODIFY_DSCP_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_MODIFY_UP_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_VLAN1_CMD_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_UP1_CMD_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_VID1_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_UP1_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_IPCL_RESERVED_EN_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_IPCL_TO_TXQ_RESERVED_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_TIMESTAMP_EN_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_OFFSET_INDEX_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_OAM_PROCESSING_EN_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_OAM_PROFILE_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_FLOW_ID_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_RESERVED_1_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_ASSIGN_SRC_EPORT_EN_E
    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS_SRC_EPORT_E

    ,SIP5_20_IPCL_ACTION_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}SIP5_20_IPCL_ACTION_TABLE_FIELDS_ENT;



/**************************************************/
/********** IPCL UNIT END *************************/
/**************************************************/

/**************************************************/
/********** L2I UNIT START ************************/
/**************************************************/


/*
 * Typedef: enum LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of L2i (bridge) ingress VLAN table.
 *
 */
typedef enum{
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_VALID_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_NEW_SRC_ADDR_IS_NOT_SECURITY_BREACH_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_UNREGISTERED_NON_IP_MULTICAST_CMD_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_UNREGISTERED_IPV4_MULTICAST_CMD_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_UNREGISTERED_IPV6_MULTICAST_CMD_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_UNKNOWN_UNICAST_CMD_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV4_IGMP_TO_CPU_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV4_IPM_BRIDGING_MODE_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV6_IPM_BRIDGING_MODE_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_MIRROR_TO_INGRESS_ANALYZER_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV6_ICMP_TO_CPU_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV4_CONTROL_TO_CPU_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV4_IPM_BRIDGING_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV6_IPM_BRIDGING_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_UNREGISTERED_IPV4_BC_CMD_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_UNREGISTERED_NON_IPV4_BC_CMD_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV4_UNICAST_ROUTE_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV4_MULTICAST_ROUTE_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV6_UNICAST_ROUTE_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV6_MULTICAST_ROUTE_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV6_SITEID_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_AUTO_LEARN_DIS_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_NA_MSG_TO_CPU_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_MRU_INDEX_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_BC_UDP_TRAP_MIRROR_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV6_CONTROL_TO_CPU_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_FLOOD_EVIDX_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_VRF_ID_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_UC_LOCAL_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_FLOOD_VIDX_MODE_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV4_MC_BC_TO_MIRROR_ANLYZER_IDX_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_IPV6_MC_TO_MIRROR_ANALYZER_IDX_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_FID_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_UNKOWN_MAC_SA_CMD_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_FCOE_FORWARDING_EN_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_UNREG_IPM_EVIDX_MODE_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_UNREG_IPM_EVIDX_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_FDB_LOOKUP_KEY_MODE_E,
    LION3_L2I_INGRESS_VLAN_TABLE_FIELDS___LAST_VALUE___E /* used for array size */
}LION3_L2I_INGRESS_VLAN_TABLE_FIELDS_ENT;






/*
 * Typedef: enum LION3_L2I_EPORT_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of L2i (bridge) EPORT table.
 *
 */
typedef enum{
    LION3_L2I_EPORT_TABLE_FIELDS_NA_MSG_TO_CPU_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_AUTO_LEARN_DIS_E,
    LION3_L2I_EPORT_TABLE_FIELDS_NA_STORM_PREV_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_NEW_SRC_ADDR_SECURITY_BREACH_E,
    LION3_L2I_EPORT_TABLE_FIELDS_VLAN_INGRESS_FILTERING_E,
    LION3_L2I_EPORT_TABLE_FIELDS_ACCEPT_FRAME_TYPE_E,
    LION3_L2I_EPORT_TABLE_FIELDS_UC_LOCAL_CMD_E,
    LION3_L2I_EPORT_TABLE_FIELDS_UNKNOWN_SRC_ADDR_CMD_E,
    LION3_L2I_EPORT_TABLE_FIELDS_PORT_PVLAN_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_PORT_VLAN_IS_TRUNK_E,
    LION3_L2I_EPORT_TABLE_FIELDS_PORT_PVLAN_TRG_EPORT_TRUNK_NUM_E,
    LION3_L2I_EPORT_TABLE_FIELDS_PORT_PVLAN_TRG_DEV_E,
    LION3_L2I_EPORT_TABLE_FIELDS_ALL_PKT_TO_PVLAN_UPLINK_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_IGMP_TRAP_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_ARP_BC_TRAP_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_EN_LEARN_ON_TRAP_IEEE_RSRV_MC_E,
    LION3_L2I_EPORT_TABLE_FIELDS_IEEE_RSVD_MC_TABLE_SEL_E,
    LION3_L2I_EPORT_TABLE_FIELDS_PORT_SOURCE_ID_FORCE_MODE_E,
    LION3_L2I_EPORT_TABLE_FIELDS_SRC_ID_E,
    LION3_L2I_EPORT_TABLE_FIELDS_ARP_MAC_SA_MIS_DROP_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_INGRESS_PORT_UNKNOWN_UC_FILTER_CMD_E,
    LION3_L2I_EPORT_TABLE_FIELDS_INGRESS_PORT_UNREG_MC_FILTER_CMD_E,
    LION3_L2I_EPORT_TABLE_FIELDS_INGRESS_PORT_BC_FILTER_CMD_E,
    LION3_L2I_EPORT_TABLE_FIELDS_INGRESS_EPORT_STP_STATE_MODE_E,
    LION3_L2I_EPORT_TABLE_FIELDS_INGRESS_EPORT_SPANNING_TREE_STATE_E,
    LION3_L2I_EPORT_TABLE_FIELDS_IPV4_CONTROL_TRAP_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_IPV6_CONTROL_TRAP_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_BC_UDP_TRAP_OR_MIRROR_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_EN_LEARN_ORIG_TAG1_VID_E,
    LION3_L2I_EPORT_TABLE_FIELDS_FDB_UC_IPV4_ROUTING_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_FDB_UC_IPV6_ROUTING_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_FDB_FCOE_ROUTING_EN_E,
    LION3_L2I_EPORT_TABLE_FIELDS_MOVED_MAC_SA_CMD_E,

    LION3_L2I_EPORT_TABLE_FIELDS___LAST_VALUE___E /* used for array size */
}LION3_L2I_EPORT_TABLE_FIELDS_ENT;




/**************************************************/
/********** L2I UNIT END   ************************/
/**************************************************/

/**************************************************/
/********** FDB UNIT START ************************/
/**************************************************/


/*
 * Typedef: enum LION3_FDB_FDB_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of FDB table.(FDB unit)
 *
 */
typedef enum {

     LION3_FDB_FDB_TABLE_FIELDS_VALID_E
    ,LION3_FDB_FDB_TABLE_FIELDS_SKIP_E
    ,LION3_FDB_FDB_TABLE_FIELDS_AGE_E
    ,LION3_FDB_FDB_TABLE_FIELDS_FDB_ENTRY_TYPE_E
    ,LION3_FDB_FDB_TABLE_FIELDS_FID_E
    ,LION3_FDB_FDB_TABLE_FIELDS_MAC_ADDR_E
    ,LION3_FDB_FDB_TABLE_FIELDS_DEV_ID_E
    ,LION3_FDB_FDB_TABLE_FIELDS_SOURCE_ID_5_0_E
    ,LION3_FDB_FDB_TABLE_FIELDS_IS_TRUNK_E
    ,LION3_FDB_FDB_TABLE_FIELDS_DIP_E
    ,LION3_FDB_FDB_TABLE_FIELDS_SIP_E
    ,LION3_FDB_FDB_TABLE_FIELDS_VIDX_E
    ,LION3_FDB_FDB_TABLE_FIELDS_TRUNK_NUM_E
    ,LION3_FDB_FDB_TABLE_FIELDS_EPORT_NUM_E
    ,LION3_FDB_FDB_TABLE_FIELDS_USER_DEFINED_E
    ,LION3_FDB_FDB_TABLE_FIELDS_RESERVED_99_103_E
    ,LION3_FDB_FDB_TABLE_FIELDS_SOURCE_ID_11_9_E
    ,LION3_FDB_FDB_TABLE_FIELDS_DA_ACCESS_LEVEL_E
    ,LION3_FDB_FDB_TABLE_FIELDS_SA_ACCESS_LEVEL_E
    ,LION3_FDB_FDB_TABLE_FIELDS_SOURCE_ID_8_6_E
    ,LION3_FDB_FDB_TABLE_FIELDS_RESERVED_116_118_E
    ,LION3_FDB_FDB_TABLE_FIELDS_ORIG_VID1_E
    ,LION3_FDB_FDB_TABLE_FIELDS_IS_STATIC_E
    ,LION3_FDB_FDB_TABLE_FIELDS_MULTIPLE_E
    ,LION3_FDB_FDB_TABLE_FIELDS_DA_CMD_E
    ,LION3_FDB_FDB_TABLE_FIELDS_SA_CMD_E
    ,LION3_FDB_FDB_TABLE_FIELDS_DA_ROUTE_E
    ,LION3_FDB_FDB_TABLE_FIELDS_SP_UNKNOWN_E
    ,LION3_FDB_FDB_TABLE_FIELDS_SA_QOS_PARAM_SET_IDX_E
    ,LION3_FDB_FDB_TABLE_FIELDS_DA_QOS_PARAM_SET_IDX_E
    ,LION3_FDB_FDB_TABLE_FIELDS_APP_SPECIFIC_CPU_CODE_E
    ,LION3_FDB_FDB_TABLE_FIELDS_SA_LOOKUP_INGRESS_MIRROR_TO_ANALYZER_E
    ,LION3_FDB_FDB_TABLE_FIELDS_DA_LOOKUP_INGRESS_MIRROR_TO_ANALYZER_E
    ,LION3_FDB_FDB_TABLE_FIELDS_VRF_ID_E
    ,LION3_FDB_FDB_TABLE_FIELDS_IPV6_SCOPE_CHECK_E
    ,LION3_FDB_FDB_TABLE_FIELDS_FCOE_D_ID_E
    ,LION3_FDB_FDB_TABLE_FIELDS_IPV4_DIP_E
    ,LION3_FDB_FDB_TABLE_FIELDS_IPV6_DST_SITE_ID_E
    ,LION3_FDB_FDB_TABLE_FIELDS_DEC_TTL_OR_HOP_COUNT_E
    ,LION3_FDB_FDB_TABLE_FIELDS_BYPASS_TTL_OPTIONS_OR_HOP_EXTENSION_E
    ,LION3_FDB_FDB_TABLE_FIELDS_INGRESS_MIRROR_TO_ANALYZER_INDEX_E
    ,LION3_FDB_FDB_TABLE_FIELDS_QOS_PROFILE_MARKING_EN_E
    ,LION3_FDB_FDB_TABLE_FIELDS_QOS_PROFILE_INDEX_E
    ,LION3_FDB_FDB_TABLE_FIELDS_QOS_PROFILE_PRECEDENCE_E
    ,LION3_FDB_FDB_TABLE_FIELDS_MODIFY_UP_E
    ,LION3_FDB_FDB_TABLE_FIELDS_MODIFY_DSCP_E
    ,LION3_FDB_FDB_TABLE_FIELDS_COUNTER_SET_INDEX_E
    ,LION3_FDB_FDB_TABLE_FIELDS_ARP_BC_TRAP_MIRROR_EN_E
    ,LION3_FDB_FDB_TABLE_FIELDS_DIP_ACCESS_LEVEL_E
    ,LION3_FDB_FDB_TABLE_FIELDS_ICMP_REDIRECT_EXCEP_MIRROR_EN_E
    ,LION3_FDB_FDB_TABLE_FIELDS_MTU_INDEX_E
    ,LION3_FDB_FDB_TABLE_FIELDS_USE_VIDX_E
    ,LION3_FDB_FDB_TABLE_FIELDS_TARGET_DEVICE_E
    ,LION3_FDB_FDB_TABLE_FIELDS_NEXT_HOP_EVLAN_E
    ,LION3_FDB_FDB_TABLE_FIELDS_TUNNEL_START_E
    ,LION3_FDB_FDB_TABLE_FIELDS_TUNNEL_TYPE_E
    ,LION3_FDB_FDB_TABLE_FIELDS_ARP_PTR_E
    ,LION3_FDB_FDB_TABLE_FIELDS_TUNNEL_PTR_E
    ,LION3_FDB_FDB_TABLE_FIELDS_IPV6_DIP_0_E
    ,LION3_FDB_FDB_TABLE_FIELDS_IPV6_DIP_1_E
    ,LION3_FDB_FDB_TABLE_FIELDS_IPV6_DIP_2_E
    ,LION3_FDB_FDB_TABLE_FIELDS_IPV6_DIP_3_E
    ,LION3_FDB_FDB_TABLE_FIELDS_NH_DATA_BANK_NUM_E

    ,LION3_FDB_FDB_TABLE_FIELDS___LAST_VALUE___E/* used for array size */

    ,SIP5_10_FDB_FDB_TABLE_FIELDS_UC_ROUTE_TS_IS_NAT_E = LION3_FDB_FDB_TABLE_FIELDS___LAST_VALUE___E

    ,SIP5_10_FDB_FDB_TABLE_FIELDS___LAST_VALUE___E


}LION3_FDB_FDB_TABLE_FIELDS_ENT;




/* macro to set value to field of (FDB) FDB entry format in buffer */
#define LION3_FDB_FDB_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_FDB_E].fieldsInfoPtr,                  \
        _fieldName,                                                 \
        _value)


/* macro to get field value of (FDB) FDB entry format in buffer */
#define LION3_FDB_FDB_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_FDB_E].fieldsInfoPtr,                  \
        _fieldName,                                                 \
        _value)


/* macro to set value to MAC ADDR field of (FDB) FDB entry format in buffer */
#define LION3_FDB_FDB_FIELD_MAC_ADDR_SET_MAC(_dev,_hwDataArr,_macAddrBytes)   \
    MAC_ADDR_SET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_FDB_E].fieldsInfoPtr,                  \
        LION3_FDB_FDB_TABLE_FIELDS_MAC_ADDR_E,                   \
        _macAddrBytes)

/* macro to get value to MAC ADDR field of (FDB) FDB entry format in buffer */
#define LION3_FDB_FDB_FIELD_MAC_ADDR_GET_MAC(_dev,_hwDataArr,_macAddrBytes)   \
    MAC_ADDR_GET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_FDB_E].fieldsInfoPtr,                  \
        LION3_FDB_FDB_TABLE_FIELDS_MAC_ADDR_E,                   \
        _macAddrBytes)


/*
 * Typedef: enum LION3_FDB_AU_MSG_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of AU messages formats.(FDB unit)
 *
 */
typedef enum {
     LION3_FDB_AU_MSG_TABLE_FIELDS_MESSAGE_ID_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_MSG_TYPE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_FDB_ENTRY_TYPE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_VALID_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SKIP_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_AGE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_MAC_ADDR_INDEX_8_0_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_CHAIN_TOO_LONG_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_MAC_ADDR_OFFSET_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_ENTRY_FOUND_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_MAC_ADDR_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_DEV_ID_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SOURCE_ID_5_0_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_DIP_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SIP_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_FID_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_VIDX_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_IS_TRUNK_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_EPORT_NUM_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_TRUNK_NUM_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_USER_DEFINED_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_RESERVED_109_113_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SOURCE_ID_11_9_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_ORIG_VID1_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_DA_ACCESS_LEVEL_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SA_ACCESS_LEVEL_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SOURCE_ID_8_6_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_APP_SPECIFIC_CPU_CODE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SP_UNKNOWN_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SEARCH_TYPE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_MAC_ADDR_INDEX_20_9_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_MULTIPLE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_DA_ROUTE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SA_QOS_PARAM_SET_IDX_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_DA_QOS_PARAM_SET_IDX_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_IS_STATIC_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_DA_CMD_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SA_CMD_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_SA_LOOKUP_INGRESS_MIRROR_TO_ANALYZER_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_DA_LOOKUP_INGRESS_MIRROR_TO_ANALYZER_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_FDB_LOOKUP_KEY_MODE_E

    /* additions for the  format of : MAC NA moved update Message */
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_NA_MOVED_UP0_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_NA_MOVED_IS_MOVED_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_NA_MOVED_OLD_IS_TRUNK_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_NA_MOVED_OLD_EPORT_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_NA_MOVED_OLD_TRUNK_NUM_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_NA_MOVED_OLD_DEVICE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_NA_MOVED_OLD_SRC_ID_E

    /* additional fields : for FUTURE support of 'NA move Entry' */
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_NA_MOVE_ENTRY_ENABLE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_NA_MOVE_ENTRY_INDEX_E

    /* fields for FDB Routing */
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_MAC_ADDR_INDEX_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_VRF_ID_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_IPV6_SCOPE_CHECK_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_FCOE_D_ID_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_IPV4_DIP_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_IPV6_DST_SITE_ID_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_DEC_TTL_OR_HOP_COUNT_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_BYPASS_TTL_OPTIONS_OR_HOP_EXTENSION_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_INGRESS_MIRROR_TO_ANALYZER_INDEX_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_QOS_PROFILE_MARKING_EN_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_QOS_PROFILE_INDEX_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_QOS_PROFILE_PRECEDENCE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_MODIFY_UP_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_MODIFY_DSCP_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_COUNTER_SET_INDEX_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_ARP_BC_TRAP_MIRROR_EN_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_DIP_ACCESS_LEVEL_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_ICMP_REDIRECT_EXCEP_MIRROR_EN_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_MTU_INDEX_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_USE_VIDX_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_IS_TRUNK_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_EVIDX_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_TARGET_DEVICE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_TRUNK_NUM_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_EPORT_NUM_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_NEXT_HOP_EVLAN_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_TUNNEL_START_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_TUNNEL_TYPE_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_ARP_PTR_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_TUNNEL_PTR_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_IPV6_DIP_0_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_IPV6_DIP_1_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_IPV6_DIP_2_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_IPV6_DIP_3_E
    ,LION3_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_NH_DATA_BANK_NUM_E

    ,LION3_FDB_AU_MSG_TABLE_FIELDS___LAST_VALUE___E/* used for array size */

    ,SIP5_10_FDB_AU_MSG_TABLE_FIELDS_UC_ROUTE_TS_IS_NAT_E = LION3_FDB_AU_MSG_TABLE_FIELDS___LAST_VALUE___E

    ,SIP5_10_FDB_AU_MSG_TABLE_FIELDS___LAST_VALUE___E

}LION3_FDB_AU_MSG_TABLE_FIELDS_ENT;




/* macro to set value to field of (FDB) AU message format in buffer */
#define LION3_FDB_AU_MSG_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_FDB_AU_MSG_E].fieldsInfoPtr,             \
        _fieldName,                                                 \
        _value)


/* macro to get field value of (FDB) AU message format in buffer */
#define LION3_FDB_AU_MSG_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_FDB_AU_MSG_E].fieldsInfoPtr,             \
        _fieldName,                                                 \
        _value)


/* macro to set value to MAC ADDR field of (FDB) AU message format in buffer */
#define LION3_FDB_AU_MSG_FIELD_MAC_ADDR_SET_MAC(_dev,_hwDataArr,_macAddrBytes)   \
    MAC_ADDR_SET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_FDB_AU_MSG_E].fieldsInfoPtr,             \
        LION3_FDB_AU_MSG_TABLE_FIELDS_MAC_ADDR_E,                   \
        _macAddrBytes)

/* macro to get value to MAC ADDR field of (FDB) AU message format in buffer */
#define LION3_FDB_AU_MSG_FIELD_MAC_ADDR_GET_MAC(_dev,_hwDataArr,_macAddrBytes)   \
    MAC_ADDR_GET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_FDB_AU_MSG_E].fieldsInfoPtr,             \
        LION3_FDB_AU_MSG_TABLE_FIELDS_MAC_ADDR_E,                   \
        _macAddrBytes)

/**************************************************/
/********** FDB UNIT END   ************************/
/**************************************************/

/**************************************************/
/********** EGF UNIT START ************************/
/**************************************************/

/*
 * Typedef: enum LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of EGF_QAG egress EPort table.(EGF_QAG unit)
 *
 */
typedef enum {
     LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_DP_TO_CFI_REMAP_ENABLE_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_EGRESS_MIRROR_TO_ANALYZER_INDEX_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_EPORT_TAG_STATE_MODE_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_EPORT_TAG_STATE_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_EVLAN_COMMAND_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_VID1_COMMAND_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_UP0_COMMAND_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_UP1_COMMAND_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_EVLAN_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_VID1_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_UP0_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_UP1_E
    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_REMOVE_VLAN_TAG_1_IF_RX_WITHOUT_TAG_1_E

    ,LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_EGRESS_EGF_QAG_EGRESS_EPORT_TABLE_FIELDS_ENT;


/* the fields of the EGF_QAG target port entry format in Sip5_20 */
typedef enum{
     SIP5_20_EGF_QAG_PORT_TARGET_ATTRIBUTES_TABLE_FIELDS_ETARGET_PHYSICAL_PORT_LOOPBACK_PROFILE_E
    ,SIP5_20_EGF_QAG_PORT_TARGET_ATTRIBUTES_TABLE_FIELDS_ETARGET_PHYSICAL_PORT_TC_PROFILE_E
    ,SIP5_20_EGF_QAG_PORT_TARGET_ATTRIBUTES_TABLE_FIELDS_ETARGET_PHYSICAL_PORT_EVLAN_MIRRORING_ENABLE_E
    ,SIP5_20_EGF_QAG_PORT_TARGET_ATTRIBUTES_TABLE_FIELDS_EUSE_VLAN_TAG_1_FOR_TAG_STATE_E
    ,SIP5_20_EGF_QAG_PORT_TARGET_ATTRIBUTES_TABLE_FIELDS_ETARGET_PHYSICAL_PORT_ENQ_PROFILE_E
    ,SIP5_20_EGF_QAG_PORT_TARGET_ATTRIBUTES_TABLE_FIELDS_ELOOPBACK_ENQ_PROFILE_E
    ,SIP5_20_EGF_QAG_PORT_TARGET_ATTRIBUTES_TABLE_FIELDS_ELOOPBACK_PORT_E

    ,SIP5_20_EGF_QAG_PORT_TARGET_ATTRIBUTES_TABLE_FIELDS___LAST_VALUE___E/* used for array size */

}SIP5_20_EGF_QAG_PORT_TARGET_ATTRIBUTES_TABLE_FIELDS_ENT;



/*
 * Typedef: enum LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of EGF_SHT egress EVlan table.(EGF_SHT unit)
 *
 */
typedef enum {
     LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_TABLE_FIELDS_VALID_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_TABLE_FIELDS_PORT_X_MEMBER_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_TABLE_FIELDS_ENT;




/*
 * Typedef: enum LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_ATTRIBUTES_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of EGF_SHT egress EVlan Attributes table.(EGF_SHT unit)
 *
 */
typedef enum {
     LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_ATTRIBUTES_TABLE_FIELDS_LOCAL_SWITHING_EN_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_ATTRIBUTES_TABLE_FIELDS_PORT_ISOLATION_VLAN_CMD_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_ATTRIBUTES_TABLE_FIELDS_EGRESS_MIRROR_TO_ANALYZER_INDEX_E

    ,LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_ATTRIBUTES_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_EGRESS_EGF_SHT_EGRESS_EVLAN_ATTRIBUTES_TABLE_FIELDS_ENT;




/*
 * Typedef: enum LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of EGF_SHT egress EPort Attributes table.(EGF_SHT unit)
 *
 */
typedef enum {
     LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_FROM_CPU_FWD_RESTRICT_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_BRIDGED_FWD_RESTRICT_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_ROUTED_FWD_RESTRICT_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_IPMC_ROUTED_FILTER_EN_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_EGRESS_EVLAN_FILTER_EN_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_PORT_ISOLATION_MODE_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_EPORT_STP_STATE_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_STP_STATE_MODE_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_ODD_ONLY_SRC_ID_FILTER_EN_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_EGRESS_EPORT_VLAN_FILTER_EN_E
    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS_MESH_ID_E

    ,LION3_EGRESS_EGF_SHT_EGRESS_EPORT_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_EGRESS_EGF_SHT_EGRESS_EPORTS_TABLE_FIELDS_ENT;




/**************************************************/
/********** EGF UNIT END   ************************/
/**************************************************/

/**************************************************/
/********** MLL UNIT START   **********************/
/**************************************************/

/*
 * Typedef: enum LION3_L2_MLL_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of L2MLL table.(MLL unit)
 *
 */
typedef enum {

     LION3_L2_MLL_TABLE_FIELDS_LAST_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_BIND_TO_MLL_COUNTER_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_MASK_BITMAP_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_USE_VIDX_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_TARGET_IS_TRUNK_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_TRG_EPORT_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_TRG_TRUNK_ID_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_VIDX_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_UNKNOWN_UC_FILTER_ENABLE_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_UNREGISTERED_MC_FILTER_ENABLE_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_BC_FILTER_ENABLE_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_TRG_DEV_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_ONE_PLUS_ONE_FILTERING_ENABLE_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_TTL_THRESHOLD_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_MESH_ID_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_MC_LOCAL_SWITCHING_ENABLE_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_MAX_HOP_COUNT_ENABLE_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_MAX_OUTGOING_HOP_COUNT_0_E
    ,LION3_L2_MLL_TABLE_FIELDS_RESERVED_1_E

    ,LION3_L2_MLL_TABLE_FIELDS_LAST_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_BIND_TO_MLL_COUNTER_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_MASK_BITMAP_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_USE_VIDX_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_TARGET_IS_TRUNK_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_TRG_EPORT_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_TRG_TRUNK_ID_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_VIDX_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_UNKNOWN_UC_FILTER_ENABLE_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_UNREGISTERED_MC_FILTER_ENABLE_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_BC_FILTER_ENABLE_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_TRG_DEV_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_ONE_PLUS_ONE_FILTERING_ENABLE_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_TTL_THRESHOLD_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_MESH_ID_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_MC_LOCAL_SWITCHING_ENABLE_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_MAX_HOP_COUNT_ENABLE_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_MAX_OUTGOING_HOP_COUNT_1_E
    ,LION3_L2_MLL_TABLE_FIELDS_RESERVED_2_E

    ,LION3_L2_MLL_TABLE_FIELDS_ENTRY_SELECTOR_E
    ,LION3_L2_MLL_TABLE_FIELDS_L2_NEXT_MLL_PTR_E

    ,LION3_L2_MLL_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_L2_MLL_TABLE_FIELDS_ENT;




/* macro to set value to field of (MLL) L2 MLL entry format in buffer */
#define LION3_L2_MLL_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_L2_MLL_E].fieldsInfoPtr,  \
        _fieldName,                                                 \
        _value)

/* macro to get value to field of (MLL) L2 MLL entry format in buffer */
#define LION3_L2_MLL_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_L2_MLL_E].fieldsInfoPtr,  \
        _fieldName,                                                 \
        _value)


/* the fields of the (MLL) L2MLL entry format in Sip5 */
typedef enum {

     LION3_IP_MLL_TABLE_FIELDS_LAST_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_START_OF_TUNNEL_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_MLL_RPF_FAIL_CMD_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_MLL_EVID_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_USE_VIDX_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_TARGET_IS_TRUNK_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_EVIDX_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_TRG_EPORT_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_TRG_TRUNK_ID_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_RESEREVED_2_E
    ,LION3_IP_MLL_TABLE_FIELDS_TRG_DEV_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_EXCLUDE_SRC_VLAN_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_TTL_THRESHOLD_0_OR_HOP_LIMIT_THRESHOLD_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_TUNNEL_PTR_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_TUNNEL_TYPE_0_E
    ,LION3_IP_MLL_TABLE_FIELDS_LAST_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_START_OF_TUNNEL_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_MLL_RPF_FAIL_CMD_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_MLL_EVID_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_USE_VIDX_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_TARGET_IS_TRUNK_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_EVIDX_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_TRG_EPORT_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_TRG_TRUNK_ID_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_RESEREVED_3_E
    ,LION3_IP_MLL_TABLE_FIELDS_TRG_DEV_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_EXCLUDE_SRC_VLAN_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_TTL_THRESHOLD_1_OR_HOP_LIMIT_THRESHOLD_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_TUNNEL_PTR_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_TUNNEL_TYPE_1_E
    ,LION3_IP_MLL_TABLE_FIELDS_NEXT_MLL_PTR_E

    ,LION3_IP_MLL_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_IP_MLL_TABLE_FIELDS_ENT;




/* macro to set value to field of (MLL) IP MLL entry format in buffer */
#define LION3_IP_MLL_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_IP_MLL_E].fieldsInfoPtr,                     \
        _fieldName,                                                 \
        _value)

/* macro to get value to field of (MLL) IP MLL entry format in buffer */
#define LION3_IP_MLL_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_IP_MLL_E].fieldsInfoPtr,                     \
        _fieldName,                                                 \
        _value)

/**************************************************/
/********** MLL UNIT END   ************************/
/**************************************************/

/*************************************************/
/********** HA UNIT START ************************/
/*************************************************/
/* the fields of the (HA) physical port table 1 */
typedef enum{
     LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_ROUTED_MAC_SA_MOD_EN_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_ROUTER_MAC_SA_ASSIGNMENT_MODE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_PER_UP0_KEEP_VLAN1_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_IP_TUNNEL_LENGTH_OFFSET_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_EPCL_LOOKUP_CONFIGURATION_MODE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_EPCL_NON_TS_DATA_PORT_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_EPCL_TS_DATA_PORT_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_EPCL_FROM_CPU_DATA_PACKETS_PORT_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_EPCL_FROM_CPU_CONTROL_PACKETS_PORT_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_PORT_GROUP_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_PORT_LIST_BIT_VECTOR_OFFSET_E

   ,LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS____LAST_VALUE___E/* used for array size */
}LION3_HA_PHYSICAL_PORT_TABLE_1_FIELDS_ENT;

/* the fields of the (HA) physical port table 2 */
typedef enum{
     LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_CASCADE_PORT_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_EGRESS_DSA_TAG_TYPE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_SER_CHECK_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_DISABLE_CRC_ADDING_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_RETAIN_EXTERNAL_CRC_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_PACKET_ID_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_ROUTED_SRC_DEVICE_ID_PORT_MODE_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_SET_SOURCE_TO_LOCAL_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_LOCAL_DEVICE_NUMBER_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_LOCAL_SOURCE_ID_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_EPCL_TO_ANALYZER_PACKETS_PORT_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_EPCL_TO_CPU_PACKETS_PORT_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_PTP_TIMESTAMP_TAG_MODE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_INVALID_CRC_MODE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_TIMESTAMP_RECEPTION_EN_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_TRUNK_ID_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_FORCE_NEW_DSA_TO_CPU_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_FORCE_NEW_DSA_FORWARD_OR_FROM_CPU_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_PRE_PEND_TWO_BYTES_HEADER_EN_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_DSA_QOS_MODE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_REMOTE_PHYSICAL_PORT_MAP_ENABLE_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_REMOTE_PHYSICAL_PORT_NUMBER_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_REMOTE_PHYSICAL_PORT_DEVICE_ID_E
    ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_INSERT_HASH_INTO_FORWARD_DSA_ENABLE_E

   ,LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS____LAST_VALUE___E/* used for array size */
}LION3_HA_PHYSICAL_PORT_TABLE_2_FIELDS_ENT;





/* the fields of the (HA) eport table 1 */
typedef enum{
     LION3_HA_EPORT_TABLE_1_FIELDS_VLAN_TRANS_EN_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_EGRESS_TAG0_TPID_INDEX_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_EGRESS_TAG1_TPID_INDEX_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_TS_HEADER_TPID_INDEX_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_TS_EXT_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_MPLS_PW_LABEL_PUSH_ENABLE_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_MPLS_PW_LABEL_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_MPLS_PW_LABEL_EXP_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_MPLS_PW_LABEL_TTL_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_PUSH_MPLS_FLOW_LABEL_ENABLE_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_FORCE_ARP_TS_EPORT_DECISION_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_TUNNEL_START_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_TS_POINTER_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_ARP_POINTER_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_TS_PASSENGER_TYPE_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_MODIFY_MAC_SA_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_MODIFY_MAC_DA_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_TRILL_INTERFACE_ENABLE_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_KEEP_ORIGINAL_TAG0_TPID_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_KEEP_ORIGINAL_TAG1_TPID_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_ENABLE_EGRESS_UP_MAPPING_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_ENABLE_EGRESS_DSCP_MAPPING_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_ENABLE_EGRESS_EXP_MAPPING_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_ENABLE_EGRESS_TC_DP_MAPPING_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_QOS_MAPPING_TABLE_INDEX_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_ROUTER_MAC_SA_INDEX_E
    ,LION3_HA_EPORT_TABLE_1_FIELDS_DP_TO_CFI_MAP_ENABLE_E

   ,LION3_HA_EPORT_TABLE_1_FIELDS____LAST_VALUE___E/* used for array size */
}LION3_HA_EPORT_TABLE_1_FIELDS_ENT;





/* the fields of the (HA) eport table 2 */
typedef enum{
     LION3_HA_EPORT_TABLE_2_MIRROR_TO_ANALYZER_KEEP_TAGS_E
    ,LION3_HA_EPORT_TABLE_2_TO_ANALYZER_VLAN_TAG_ADD_EN_E
    ,LION3_HA_EPORT_TABLE_2_PUSH_VLAN_COMMAND_E
    ,LION3_HA_EPORT_TABLE_2_PUSHED_TAG_TPID_SELECT_E
    ,LION3_HA_EPORT_TABLE_2_PUSHED_TAG_VALUE_E
    ,LION3_HA_EPORT_TABLE_2_UP_CFI_ASSIGNMENT_COMMAND_E
    ,LION3_HA_EPORT_TABLE_2_UP_E
    ,LION3_HA_EPORT_TABLE_2_CFI_E
    ,LION3_HA_EPORT_TABLE_2_FORCE_E_TAG_IE_PID_TO_DEFAULT_E

   ,LION3_HA_EPORT_TABLE_2_FIELDS____LAST_VALUE___E/* used for array size */
}LION3_HA_EPORT_TABLE_2_FIELDS_ENT;

/* the fields of the (HA) tunnel start table */
typedef enum{
     LION3_HA_TUNNEL_START_TABLE_FIELDS_TUNNEL_TYPE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_UP_MARKING_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_UP_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_TAG_ENABLE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_VID_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_TTL_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_RETAIN_INNER_CRC_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_RESERVED_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_GRE_KEY_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_PROTOCOL_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_NEXT_HOP_MAC_DA_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_GRE_PROTOCOL_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_RESERVED_1_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_IPV4_GRE_KEY_1_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_UDP_DST_PORT_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_DSCP_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_DSCP_MARKING_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_DF_FLAG_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_RESERVED_2_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_RID_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_CAPWAP_FLAGS_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_AUTO_TUNNEL_OFFSET_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_AUTO_TUNNEL_FLAG_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_IPV4_GRE_ENABLE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_IPV4_GRE_KEY_0_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_RESERVED_4_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_TRILL_HEADER_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_LABEL1_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_EXP1_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_EXP1_MARKING_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_NUMBER_OF_MPLS_LABELS_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_RESERVED_3_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_SET_S_BIT_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_SWAP_TTL_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_MPLS_MC_UPSTREAM_ASSIGNED_LABEL_E /* MPLS Ethertype Select */
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_RESERVED_7_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_LABEL2_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_EXP2_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_EXP2_MARKING_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_PW_CONTROL_INDEX_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_RESERVED_5_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_LABEL3_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_EXP3_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_EXP3_MARKING_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_I_SID_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_I_UP_MARKING_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_RESERVED_6_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_I_UP_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_I_DEI_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_I_DEI_MARKING_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_I_SID_ASSIGN_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_I_TAG_RES2_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_I_TAG_RES1_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_I_TAG_NCA_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_B_DA_ASSIGN_MODE_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_PROFILE_NUMBER_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_UDP_SRC_PORT_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_GRE_FLAGS_AND_VER_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_DIP_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_SIP_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_FLOW_LABEL_MODE_E

     /* new field in Bobcat B0 , was not in Bobcat A0 */
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_MPLS_PW_EXP_MARKING_MODE_E

    /* new fields in BobK */
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_PUSH_ELI_AND_EL_AFTER_LABEL_1_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_PUSH_ELI_AND_EL_AFTER_LABEL_2_E
    ,LION3_HA_TUNNEL_START_TABLE_FIELDS_PUSH_ELI_AND_EL_AFTER_LABEL_3_E

    ,LION3_HA_TUNNEL_START_TABLE_FIELDS____LAST_VALUE___E/* used for array size */
}LION3_HA_TUNNEL_START_TABLE_FIELDS_ENT;

/* the fields of the (HA) NAT44 table */
typedef enum{
     LION3_HA_NAT44_TABLE_FIELDS_MAC_DA_E
    ,LION3_HA_NAT44_TABLE_FIELDS_MODIFY_DIP_E
    ,LION3_HA_NAT44_TABLE_FIELDS_NEW_DIP_E
    ,LION3_HA_NAT44_TABLE_FIELDS_MODIFY_SIP_E
    ,LION3_HA_NAT44_TABLE_FIELDS_NEW_SIP_E
    ,LION3_HA_NAT44_TABLE_FIELDS_MODIFY_TCP_UDP_DST_PORT_E
    ,LION3_HA_NAT44_TABLE_FIELDS_NEW_TCP_UDP_DST_PORT_E
    ,LION3_HA_NAT44_TABLE_FIELDS_MODIFY_TCP_UDP_SRC_PORT_E
    ,LION3_HA_NAT44_TABLE_FIELDS_NEW_TCP_UDP_SRC_PORT_E
    ,LION3_HA_NAT44_TABLE_FIELDS_NAT_ENTRY_TYPE_E

    ,LION3_HA_NAT44_TABLE_FIELDS____LAST_VALUE___E/* used for array size */
}LION3_HA_NAT44_TABLE_FIELDS_ENT;

/* the fields of the (HA) NAT6 table */
typedef enum{
     LION3_HA_NAT66_TABLE_FIELDS_MAC_DA_E
    ,LION3_HA_NAT66_TABLE_FIELDS_MODIFY_COMMAND_E
    ,LION3_HA_NAT66_TABLE_FIELDS_ADDRESS_E
    ,LION3_HA_NAT66_TABLE_FIELDS_PREFIX_SIZE_E
    ,LION3_HA_NAT66_TABLE_FIELDS_NAT_ENTRY_TYPE_E

    ,LION3_HA_NAT66_TABLE_FIELDS____LAST_VALUE___E/* used for array size */
}LION3_HA_NAT66_TABLE_FIELDS_ENT;

/* the fields of the (HA) generic tunnel start profile table */
typedef enum{
    LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE0_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE0_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE0_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE0_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE0_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE0_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE0_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE0_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE1_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE1_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE1_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE1_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE1_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE1_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE1_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE1_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE2_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE2_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE2_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE2_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE2_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE2_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE2_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE2_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE3_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE3_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE3_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE3_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE3_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE3_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE3_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE3_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE4_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE4_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE4_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE4_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE4_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE4_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE4_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE4_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE5_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE5_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE5_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE5_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE5_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE5_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE5_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE5_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE6_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE6_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE6_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE6_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE6_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE6_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE6_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE6_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE7_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE7_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE7_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE7_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE7_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE7_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE7_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE7_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE8_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE8_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE8_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE8_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE8_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE8_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE8_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE8_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE9_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE9_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE9_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE9_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE9_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE9_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE9_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE9_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE10_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE10_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE10_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE10_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE10_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE10_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE10_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE10_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE11_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE11_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE11_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE11_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE11_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE11_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE11_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE11_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE12_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE12_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE12_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE12_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE12_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE12_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE12_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE12_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE13_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE13_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE13_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE13_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE13_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE13_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE13_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE13_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE14_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE14_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE14_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE14_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE14_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE14_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE14_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE14_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE15_BIT0_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE15_BIT1_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE15_BIT2_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE15_BIT3_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE15_BIT4_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE15_BIT5_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE15_BIT6_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_BYTE15_BIT7_E

   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_HASH_CIRCULAR_SHIFT_LEFT_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_TEMPLATE_SIZE_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_UDP_SRC_PORT_MODE_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_SERVICE_ID_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_MAC_DA_MODE_E
   ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_PROFILE_DIP_MODE_E

    ,LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS____LAST_VALUE___E/* used for array size */
}LION3_HA_GEN_TUNNEL_START_PROFILE_TABLE_FIELDS_ENT;


/* macro to set value to field of (HA) Tunnel Start format in buffer */
#define LION3_HA_TUNNEL_START_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_TUNNEL_START_E].fieldsInfoPtr, \
        _fieldName,                                                 \
        _value)

/* macro to get field value of (HA) Tunnel Start format in buffer */
#define LION3_HA_TUNNEL_START_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_TUNNEL_START_E].fieldsInfoPtr, \
        _fieldName,                                                 \
        _value)

/* macro to set value to NEXT_HOP_MAC_DA field of (HA) Tunnel Start entry format in buffer */
#define LION3_HA_TUNNEL_START_FIELD_NEXT_HOP_MAC_DA_SET_MAC(_dev,_hwDataArr,_macAddrBytes)   \
    MAC_ADDR_SET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_TUNNEL_START_E].fieldsInfoPtr,             \
        LION3_HA_TUNNEL_START_TABLE_FIELDS_NEXT_HOP_MAC_DA_E,       \
        _macAddrBytes)

/* macro to get value to NEXT_HOP_MAC_DA field of (HA) Tunnel Start entry format in buffer */
#define LION3_HA_TUNNEL_START_FIELD_NEXT_HOP_MAC_DA_GET_MAC(_dev,_hwDataArr,_macAddrBytes)   \
    MAC_ADDR_GET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_TUNNEL_START_E].fieldsInfoPtr,             \
        LION3_HA_TUNNEL_START_TABLE_FIELDS_NEXT_HOP_MAC_DA_E,       \
        _macAddrBytes)


/* macro to set value to field of (HA) Generic Tunnel Start Profile format in buffer */
#define LION3_HA_GEN_TUNNEL_START_PROFILE_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_HA_GENERIC_TS_PROFILE_E].fieldsInfoPtr,             \
        _fieldName,                                                 \
        _value)

/* macro to get field value of (HA) Generic Tunnel Start Profile format in buffer */
#define LION3_HA_GEN_TUNNEL_START_PROFILE_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_HA_GENERIC_TS_PROFILE_E].fieldsInfoPtr,             \
        _fieldName,                                                 \
        _value)

/* macro to set value to field of (HA) NAT44 format in buffer */
#define LION3_HA_NAT44_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_NAT44_E].fieldsInfoPtr, \
        _fieldName,                                                 \
        _value)

/* macro to get field value of (HA) NAT44 format in buffer */
#define LION3_HA_NAT44_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_NAT44_E].fieldsInfoPtr, \
        _fieldName,                                                 \
        _value)

/* macro to set value to MAC_DA field of (HA) NAT44 entry format in buffer */
#define LION3_HA_NAT44_FIELD_MAC_DA_SET_MAC(_dev,_hwDataArr,_macAddrBytes)   \
    MAC_ADDR_SET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_NAT44_E].fieldsInfoPtr,             \
        LION3_HA_NAT44_TABLE_FIELDS_MAC_DA_E,       \
        _macAddrBytes)

/* macro to get value to MAC_DA field of (HA) NAT44 entry format in buffer */
#define LION3_HA_NAT44_FIELD_MAC_DA_GET_MAC(_dev,_hwDataArr,_macAddrBytes)   \
    MAC_ADDR_GET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_NAT44_E].fieldsInfoPtr,             \
        LION3_HA_NAT44_TABLE_FIELDS_MAC_DA_E,       \
        _macAddrBytes)

/* macro to set value to field of (HA) NAT66 format in buffer */
#define LION3_HA_NAT66_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_NAT66_E].fieldsInfoPtr, \
        _fieldName,                                                 \
        _value)

/* macro to get field value of (HA) NAT66 format in buffer */
#define LION3_HA_NAT66_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_NAT66_E].fieldsInfoPtr, \
        _fieldName,                                                 \
        _value)

/* macro to set value to MAC_DA field of (HA) NAT66 entry format in buffer */
#define LION3_HA_NAT66_FIELD_MAC_DA_SET_MAC(_dev,_hwDataArr,_macAddrBytes)   \
    MAC_ADDR_SET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_NAT66_E].fieldsInfoPtr,             \
        LION3_HA_NAT66_TABLE_FIELDS_MAC_DA_E,       \
        _macAddrBytes)

/* macro to get value to MAC_DA field of (HA) NAT66 entry format in buffer */
#define LION3_HA_NAT66_FIELD_MAC_DA_GET_MAC(_dev,_hwDataArr,_macAddrBytes)   \
    MAC_ADDR_GET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_NAT66_E].fieldsInfoPtr,             \
        LION3_HA_NAT66_TABLE_FIELDS_MAC_DA_E,       \
        _macAddrBytes)

/* macro to set value to IPv6 address field of (HA) NAT66 entry format in buffer */
#define LION3_HA_NAT66_FIELD_ADDRESS_SET_MAC(_dev,_hwDataArr,_ipv6AddrBytes)   \
    IPV6_ADDR_SET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_NAT66_E].fieldsInfoPtr,             \
        LION3_HA_NAT66_TABLE_FIELDS_ADDRESS_E,       \
        _ipv6AddrBytes)

/* macro to get value to IPv6 address field of (HA) NAT66 entry format in buffer */
#define LION3_HA_NAT66_FIELD_ADDRESS_GET_MAC(_dev,_hwDataArr,_ipv6AddrBytes)   \
    IPV6_ADDR_GET_FIELD_BY_ID_MAC(_hwDataArr,                           \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_NAT66_E].fieldsInfoPtr,             \
        LION3_HA_NAT66_TABLE_FIELDS_ADDRESS_E,       \
        _ipv6AddrBytes)

/*************************************************/
/********** HA UNIT END   ************************/
/*************************************************/

/**************************************************/
/********** EPCL UNIT START ***********************/
/**************************************************/

/*
 * Typedef: enum LION3_EPCL_ACTION_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of EPCL Action table.
 *
 */
typedef enum {
     LION3_EPCL_ACTION_TABLE_FIELDS_COMMAND_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_DSCP_EXP_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_UP0_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_MODIFY_DSCP_EXP_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_ENABLE_MODIFY_UP0_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_BIND_TO_CNC_COUNTER_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_CNC_COUNTER_INDEX_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_TAG1_VID_CMD_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_ENABLE_MODIFY_UP1_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_TAG1_VID_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_UP1_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_TAG0_VLAN_CMD_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_TAG0_VID_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_BIND_TO_POLICER_COUNTER_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_BIND_TO_POLICER_METER_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_POLICER_INDEX_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_RESERVED_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_FLOW_ID_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_OAM_PROCESSING_ENABLE_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_OAM_PROFILE_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_TIME_STAMP_ENABLE_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_TIME_STAMP_OFFSET_INDEX_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_CHANNEL_TYPE_TO_OPCODE_MAPPING_EN_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_EPCL_RESERVED_ENABLE_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_EPCL_RESERVED_E
    ,LION3_EPCL_ACTION_TABLE_FIELDS_TM_QUEUE_ID_E

    ,LION3_EPCL_ACTION_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_EPCL_ACTION_TABLE_FIELDS_ENT;

/**************************************************/
/********** EPCL UNIT END *************************/
/**************************************************/

/**************************************************/
/********** IPvX UNIT START ***********************/
/**************************************************/

/*
 * Typedef: enum LION3_IPV4_MULTICAST_ROUTER_NEXTHOP_TABLE_FIELDS_ENT
 *
 * Description:
 *      enumeration to hold fields of IPv4 Multicast Nexthop entry.
 *
 */
typedef enum {
     LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_COMMAND_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_BYPASS_TTL_OPTIONS_OR_HOP_EXTENSION_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_CPU_CODE_INDEX_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_INGRESS_MIRROR_TO_ANALYZER_INDEX_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_QOS_PROFILE_PRECEDENCE_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_QOS_PROFILE_MARKING_EN_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_QOS_PROFILE_INDEX_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_MODIFY_DSCP_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_MODIFY_UP_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_MC_RPF_EVLAN_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_MC_RPF_EVLAN_MRST_INDEX_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_RESERVED_28_34_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_RESERVED_35_47_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_MULTICAST_INGRESS_VLAN_CHECK_FAIL_CMD_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_MULTICAST_RPF_FAIL_CMD_MODE_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_RESERVED_52_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_INTERNAL_MLL_PTR_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_EXTERNAL_MLL_PTR_MSB_BITS_15_13_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_RESERVED_72_74_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_MULTICAST_INGRESS_VLAN_CHECK_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_EXTERNAL_MLL_PTR_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_IPV6_MULTICAST_RESERVED_90_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_IPV6_MULTICAST_DEST_SITE_ID_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_IPV6_MULTICAST_SCOPE_CHECK_EN_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_NEXT_HOP_VID1_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_RESERVED_21_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_NEXT_HOP_EVLAN_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_USE_VIDX_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_EVIDX_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_RESERVED_52_59_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_TARGET_IS_TRUNK_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_TRG_EPORT_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_TRG_DEV_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_TRG_TRUNK_ID_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_RESERVED_49_59_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_DIP_ACCESS_LEVEL_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_SIP_ACCESS_LEVEL_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_START_OF_TUNNEL_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_ARP_PTR_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_TUNNEL_PTR_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_RESERVED_88_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_UNICAST_TS_IS_NAT_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_UNICAST_TUNNEL_TYPE_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_UNICAST_DEST_SITE_ID_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_UNICAST_SCOPE_CHECK_EN_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_COUNTER_SET_INDEX_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_MTU_INDEX_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_ARP_BC_TRAP_MIRROR_EN_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_APP_SPECIFIC_CPU_CODE_EN_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_RESERVED_101_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_SIP_FILTER_EN_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_DEC_TTL_OR_HOP_COUNT_E
    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_ICMP_REDIRECT_EXCEP_MIRROR_E

    ,LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_IPVX_ROUTER_NEXTHOP_TABLE_FIELDS_ENT;

/* macro to set value to field of IPvX entry format in buffer */
#define LION3_IPVX_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_IPVX_ROUTER_NEXT_HOP_E].fieldsInfoPtr,                     \
        _fieldName,                                                 \
        _value)

/* macro to get value to field of IPvX entry format in buffer */
#define LION3_IPVX_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_IPVX_ROUTER_NEXT_HOP_E].fieldsInfoPtr,                     \
        _fieldName,                                                 \
        _value)

/*
 * Typedef: enum LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS_ENT
 *
 * Description:
 *      Enumeration to hold fields of Router ePort table entry.
 *
 */
typedef enum {
    LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS_ROUTER_PER_EPORT_SIP_SA_CHECK_ENABLE_E
   ,LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS_FCOE_FORWARDING_ENABLE_E
   ,LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS_IPV4_UC_ROUTING_ENABLE_E
   ,LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS_IPV4_MC_ROUTING_ENABLE_E
   ,LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS_IPV6_UC_ROUTING_ENABLE_E
   ,LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS_IPV6_MC_ROUTING_ENABLE_E
   ,LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS_URPF_ENABLE_E
   ,LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS_DISABLE_SIP_LOOKUP

   ,LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_IPVX_ROUTER_EPORT_TABLE_FIELDS_ENT;


/**************************************************/
/********** IPvX UNIT END *************************/
/**************************************************/

/**************************************************/
/********** PLR UNIT START ************************/
/**************************************************/
/* the fields of the (PLR) policer metering (IPLR0,1,EPLR) in Sip5 */
/* NOTE: in sip5_15 this table called 'Metering Token Bucket Entry' */
typedef enum{
     LION3_PLR_METERING_TABLE_FIELDS_LAST_UPDATE_TIME0_E
    ,LION3_PLR_METERING_TABLE_FIELDS_LAST_UPDATE_TIME1_E
    ,LION3_PLR_METERING_TABLE_FIELDS_WRAP_AROUND_INDICATOR0_E
    ,LION3_PLR_METERING_TABLE_FIELDS_WRAP_AROUND_INDICATOR1_E
    ,LION3_PLR_METERING_TABLE_FIELDS_BUCKET_SIZE0_E
    ,LION3_PLR_METERING_TABLE_FIELDS_BUCKET_SIZE1_E
    ,LION3_PLR_METERING_TABLE_FIELDS_RATE_TYPE0_E
    ,LION3_PLR_METERING_TABLE_FIELDS_RATE_TYPE1_E
    ,LION3_PLR_METERING_TABLE_FIELDS_RATE0_E
    ,LION3_PLR_METERING_TABLE_FIELDS_RATE1_E
    ,LION3_PLR_METERING_TABLE_FIELDS_MAX_BURST_SIZE0_E
    ,LION3_PLR_METERING_TABLE_FIELDS_MAX_BURST_SIZE1_E
    ,LION3_PLR_METERING_TABLE_FIELDS_COLOR_MODE_E                               /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_POLICER_MODE_E                             /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_MG_COUNTERS_SET_EN_E                       /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_BILLING_PTR_E                              /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_BYTE_OR_PACKET_COUNTING_MODE_E             /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_PACKET_SIZE_MODE_E                         /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_TUNNEL_TERMINATION_PACKET_SIZE_MODE_E      /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_INCLUDE_LAYER1_OVERHEAD_E                  /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_DSA_TAG_COUNTING_MODE_E                    /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_TIMESTAMP_TAG_COUNTING_MODE_E              /* in sip5_15 moved to 'Metering Configuration Entry' */
    /* ingress only fields*/
    ,LION3_PLR_METERING_TABLE_FIELDS_INGRESS_RED_CMD_E                          /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_INGRESS_YELLOW_CMD_E                       /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_INGRESS_GREEN_CMD_E                        /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_INGRESS_MODIFY_DSCP_E                      /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_INGRESS_MODIFY_UP_E                        /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_INGRESS_QOS_PROFILE_E                      /* in sip5_15 moved to 'Metering Configuration Entry' */
    /* egress only fields*/
    ,LION3_PLR_METERING_TABLE_FIELDS_EGRESS_REMARK_MODE_E                       /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_EGRESS_DROP_RED_E                          /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_EGRESS_EN_MODIFY_EXP_E                     /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_EGRESS_EN_MODIFY_DSCP_E                    /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_EGRESS_EN_MODIFY_TC_E                      /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_EGRESS_EN_MODIFY_UP_E                      /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_EGRESS_EN_MODIFY_DP_E                      /* in sip5_15 moved to 'Metering Configuration Entry' */
    ,LION3_PLR_METERING_TABLE_FIELDS_EGRESS_EN_YELLOW_ECN_MARKING_E             /* in sip5_15 moved to 'Metering Configuration Entry' */

    /* sip5_15 only fields */
    ,SIP5_15_PLR_METERING_TABLE_FIELDS_BUCKET_0_PRIORITY_E
    ,SIP5_15_PLR_METERING_TABLE_FIELDS_BUCKET_1_PRIORITY_E
    ,SIP5_15_PLR_METERING_TABLE_FIELDS_BUCKET_0_COLOR_E
    ,SIP5_15_PLR_METERING_TABLE_FIELDS_BUCKET_1_COLOR_E
    ,SIP5_15_PLR_METERING_TABLE_FIELDS_COUPLING_FLAG_E
    ,SIP5_15_PLR_METERING_TABLE_FIELDS_COUPLING_FLAG_0_E
    ,SIP5_15_PLR_METERING_TABLE_FIELDS_EIR_AND_CIR_MAX_INDEX_E

    /* NOTE: this enum is emulating field that exists in 'meter config' entry
        and is used to 'virtualization' of single entry ... although actual info
        split to several tables
    */
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_MEF_10_3_ENV_SIZE_E___EMULATION_ONLY_E/*emulation of SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_MEF_10_3_ENV_SIZE_E */

    ,LION3_PLR_METERING_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}LION3_PLR_METERING_TABLE_FIELDS_ENT;

/* INTERNAL : macro to set value to field of PLR meter entry format in buffer */
#define LION3_PLR_METER_FIELD_SET_MAC(_dev,_hwMeterArr,_hwMeterConfigArr,_fieldName,_value)    \
{                                                                               \
    GT_STATUS _rc;                                                              \
    _rc = prvCpssDxChTablePlrMeterFieldBuild(_dev,_hwMeterArr,_hwMeterConfigArr,_fieldName,_value); \
    if (_rc != GT_OK)                                                           \
    {                                                                           \
        return _rc;                                                             \
    }                                                                           \
}

/* INTERNAL : macro to get value to field of PLR meter entry format in buffer */
#define LION3_PLR_METER_FIELD_GET_MAC(_dev,_hwMeterArr,_hwMeterConfigArr,_fieldName,_value)    \
{                                                                               \
    GT_STATUS _rc;                                                              \
    _rc = prvCpssDxChTablePlrMeterFieldParse(_dev,_hwMeterArr,_hwMeterConfigArr,_fieldName,&_value); \
    if (_rc != GT_OK)                                                           \
    {                                                                           \
        return _rc;                                                             \
    }                                                                           \
}


/* INTERNAL : macro to set value to field of PLR meter entry format in buffer */
#define __LION3_PLR_METER_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_PLR_METER_E].fieldsInfoPtr, \
        _fieldName,                                                 \
        _value)

/* INTERNAL : macro to get value to field of PLR meter entry format in buffer */
#define __LION3_PLR_METER_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_PLR_METER_E].fieldsInfoPtr, \
        _fieldName,                                                 \
        _value)

/* the fields of the (PLR) policer Metering Configuration Entry (IPLR0,1,EPLR) in Sip5_15 */
typedef enum{
     SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_COLOR_MODE_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_POLICER_MODE_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_MG_COUNTERS_SET_EN_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_BILLING_PTR_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_BYTE_OR_PACKET_COUNTING_MODE_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_PACKET_SIZE_MODE_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_TUNNEL_TERMINATION_PACKET_SIZE_MODE_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_INCLUDE_LAYER1_OVERHEAD_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_DSA_TAG_COUNTING_MODE_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_TIMESTAMP_TAG_COUNTING_MODE_E
    /* ingress only fields*/
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_INGRESS_RED_CMD_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_INGRESS_YELLOW_CMD_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_INGRESS_GREEN_CMD_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_INGRESS_MODIFY_DSCP_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_INGRESS_MODIFY_UP_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_INGRESS_QOS_PROFILE_E
    /* egress only fields*/
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_EGRESS_REMARK_MODE_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_EGRESS_DROP_RED_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_EGRESS_EN_MODIFY_EXP_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_EGRESS_EN_MODIFY_DSCP_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_EGRESS_EN_MODIFY_TC_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_EGRESS_EN_MODIFY_UP_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_EGRESS_EN_MODIFY_DP_E
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_EGRESS_EN_YELLOW_ECN_MARKING_E

    /* field common to ingress and to egress */
    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_MEF_10_3_ENV_SIZE_E

    ,SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}SIP5_15_PLR_METERING_CONFIG_TABLE_FIELDS_ENT;

/* the fields of the (PLR) policer Metering Conformance Sign Entry (IPLR0,1,EPLR) in Sip5_15 */
typedef enum{
     PRV_CPSS_DXCH_PLR_METERING_CONFORM_SIGN_TABLE_FIELDS_BUCKET0_SIGN_E
    ,PRV_CPSS_DXCH_PLR_METERING_CONFORM_SIGN_TABLE_FIELDS_BUCKET1_SIGN_E

    ,PRV_CPSS_DXCH_PLR_METERING_CONFORM_SIGN_TABLE_FIELDS___LAST_VALUE___E/* used for array size */
}PRV_CPSS_DXCH_PLR_METERING_CONFORM_SIGN_TABLE_FIELDS_ENT;


/* INTERNAL : macro to set value to field of PLR meter config entry format in buffer */
#define __SIP5_15_PLR_METER_CONFIG_FIELD_SET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_SET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_PLR_METER_CONFIG_E].fieldsInfoPtr, \
        _fieldName,                                                 \
        _value)

/* INTERNAL : macro to get value to field of PLR meter config entry format in buffer */
#define __SIP5_15_PLR_METER_CONFIG_FIELD_GET_MAC(_dev,_hwDataArr,_fieldName,_value)    \
    U32_GET_FIELD_BY_ID_MAC(_hwDataArr,                             \
        PRV_CPSS_DXCH_PP_MAC(_dev)->tableFormatInfo[PRV_CPSS_DXCH_TABLE_FORMAT_PLR_METER_CONFIG_E].fieldsInfoPtr, \
        _fieldName,                                                 \
        _value)



/*******************************************************************************
* prvCpssDxChReadTableEntry
*
* DESCRIPTION:
*       Read a whole entry from the table.
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum  - the device number
*       tableType - the specific table name
*       entryIndex   - index in the table
*
* OUTPUTS:
*       entryValuePtr - (pointer to) the data read from the table
*                       may be NULL in the case of indirect table.
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_OUT_OF_RANGE          - parameter not in valid range
*       GT_TIMEOUT  - after max number of retries checking if PP ready
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*
*      In the case of entryValuePtr == NULL and indirect table the function
*      just send read entry command to device. And entry is stored in the
*      data registers of a indirect table
*******************************************************************************/
GT_STATUS prvCpssDxChReadTableEntry
(
    IN GT_U8                    devNum,
    IN PRV_CPSS_DXCH_TABLE_ENT  tableType,
    IN GT_U32                   entryIndex,
    OUT GT_U32                 *entryValuePtr
);

/*******************************************************************************
* prvCpssDxChWriteTableEntry
*
* DESCRIPTION:
*       Write a whole entry to the table.
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum  - the device number
*       tableType - the specific table name
*       entryIndex   - index in the table
*       entryValuePtr - (pointer to) the data that will be written to the table
*                       may be NULL in the case of indirect table.
*
*
* OUTPUTS:
*       None
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_OUT_OF_RANGE          - parameter not in valid range
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*
*      In the case of entryValuePtr == NULL and indirect table the function
*      just send write entry command to device. And entry is taken from the
*      data registers of a indirect table.
*******************************************************************************/
GT_STATUS prvCpssDxChWriteTableEntry
(
    IN GT_U8                    devNum,
    IN PRV_CPSS_DXCH_TABLE_ENT  tableType,
    IN GT_U32                   entryIndex,
    IN GT_U32                  *entryValuePtr
);

/*******************************************************************************
* prvCpssDxChReadTableEntryField
*
* DESCRIPTION:
*       Read a field from the table.
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum  - the device number
*       tableType - the specific table name
*       entryIndex   - index in the table
*       fieldWordNum - field word number
*                   use PRV_CPSS_DXCH_TABLE_WORD_INDICATE_GLOBAL_BIT_CNS
*                   if need global offset in the field of fieldOffset
*                   use PRV_CPSS_DXCH_TABLE_WORD_INDICATE_FIELD_NAME_CNS
*                   if need 'field name' in the field of fieldOffset
*       fieldOffset  - field offset
*       fieldLength - field length
*                   when fieldWordNum == PRV_CPSS_DXCH_TABLE_WORD_INDICATE_FIELD_NAME_CNS
*                   the field 'fieldLength' is used ONLY if  it's value != 0
*                   and then it means 'Mumber of consecutive fields' !!!
*
* OUTPUTS:
*       fieldValuePtr - (pointer to) the data read from the table
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_OUT_OF_RANGE          - parameter not in valid range
*       GT_TIMEOUT  - after max number of retries checking if PP ready
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*
*
*******************************************************************************/
GT_STATUS prvCpssDxChReadTableEntryField
(
    IN GT_U8                    devNum,
    IN PRV_CPSS_DXCH_TABLE_ENT  tableType,
    IN GT_U32                   entryIndex,
    IN GT_U32                   fieldWordNum,
    IN GT_U32                   fieldOffset,
    IN GT_U32                   fieldLength,
    OUT GT_U32                 *fieldValuePtr
);

/*******************************************************************************
* prvCpssDxChWriteTableEntryField
*
* DESCRIPTION:
*       Write a field to the table.
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum  - the device number
*       tableType - the specific table name
*       entryIndex   - index in the table
*       fieldWordNum - field word number
*                   use PRV_CPSS_DXCH_TABLE_WORD_INDICATE_GLOBAL_BIT_CNS
*                   if need global offset in the field of fieldOffset
*                   use PRV_CPSS_DXCH_TABLE_WORD_INDICATE_FIELD_NAME_CNS
*                   if need 'field name' in the field of fieldOffset
*       fieldOffset  - field offset
*       fieldLength - field length
*                   when fieldWordNum == PRV_CPSS_DXCH_TABLE_WORD_INDICATE_FIELD_NAME_CNS
*                   the field 'fieldLength' is used ONLY if  it's value != 0
*                   and then it means 'Mumber of consecutive fields' !!!
*       fieldValue - the data write to the table
*
* OUTPUTS:
*       None
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_OUT_OF_RANGE          - parameter not in valid range
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*
*
*******************************************************************************/
GT_STATUS prvCpssDxChWriteTableEntryField
(
    IN GT_U8                    devNum,
    IN PRV_CPSS_DXCH_TABLE_ENT  tableType,
    IN GT_U32                   entryIndex,
    IN GT_U32                   fieldWordNum,
    IN GT_U32                   fieldOffset,
    IN GT_U32                   fieldLength,
    IN GT_U32                   fieldValue
);


/*******************************************************************************
* prvCpssDxChTableNumEntriesGet
*
* DESCRIPTION:
*       get the number of entries in a table
*       needed for debug purpose
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum  - the device number
*       tableType - the specific table name
*
* OUTPUTS:
*       numEntriesPtr - (pointer to) number of entries in the table
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_BAD_PTR               - on NULL pointer
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*
*******************************************************************************/
GT_STATUS prvCpssDxChTableNumEntriesGet
(
    IN GT_U8                    devNum,
    IN PRV_CPSS_DXCH_TABLE_ENT  tableType,
    OUT GT_U32                  *numEntriesPtr
);


/*******************************************************************************
* prvCpssDxChTablesAccessInit
*
* DESCRIPTION:
*       Initializes all structures for table access.
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum    - physical device number
*
* OUTPUTS:
*       None
*
* COMMENTS:
*
*******************************************************************************/
GT_STATUS  prvCpssDxChTablesAccessInit
(
    IN GT_U8    devNum
);

/*******************************************************************************
* prvCpssDxChPortGroupWriteTableEntryFieldList
*
* DESCRIPTION:
*       Write a list of fields to the table.
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum            - device number
*       portGroupId - the port group Id , to support multi-port-group devices that need to access
*                specific port group
*       tableType         - HW table Id
*       entryIndex        - entry Index
*       entryMemoBufArr   - the work memory for read, update and write the entry
*       fieldsAmount      - amount of updated fields in the entry
*       fieldOffsetArr    - (array) the offset of the field in bits
*                           from the entry origin
*       fieldLengthArr    - (array) the length of the field in bits,
*                           0 - means to skip this subfield
*       fieldValueArr     - (array) the value of the field
*
* OUTPUTS:
*       None
*
* RETURNS:
*       GT_OK              - on success.
*       GT_BAD_PARAM       - one of the input parameters is not valid.
*       GT_TIMEOUT         - after max number of retries checking if PP ready
* COMMENTS:
*
*******************************************************************************/
GT_STATUS prvCpssDxChPortGroupWriteTableEntryFieldList
(
    IN GT_U8                                  devNum,
    IN GT_U32                                 portGroupId,
    IN PRV_CPSS_DXCH_TABLE_ENT                tableType,
    IN GT_U32                                 entryIndex,
    IN GT_U32                                 entryMemoBufArr[],
    IN GT_U32                                 fieldsAmount,
    IN GT_U32                                 fieldOffsetArr[],
    IN GT_U32                                 fieldLengthArr[],
    IN GT_U32                                 fieldValueArr[]
);

/*******************************************************************************
* prvCpssDxChReadTableEntryFieldList
*
* DESCRIPTION:
*       Read a list of fields from the table.
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum            - device number
*       portGroupId - the port group Id , to support multi-port-group devices that need to access
*                specific port group
*       tableId           - HW table Id
*       entryIndex        - entry Index
*       entryMemoBufArr   - the work memory for read, update and write the entry
*       fieldsAmount      - amount of updated fields in the entry
*       fieldOffsetArr    - (array) the offset of the field in bits
*                           from the entry origin
*       fieldLengthArr    - (array) the length of the field in bits,
*                           0 - means to skip this subfield

* OUTPUTS:
*       fieldValueArr     - (array) the value of the field
*
*
* RETURNS:
*       GT_OK              - on success.
*       GT_BAD_PARAM       - one of the input parameters is not valid.
*       GT_TIMEOUT         - after max number of retries checking if PP ready
* COMMENTS:
*
*******************************************************************************/
GT_STATUS prvCpssDxChPortGroupReadTableEntryFieldList
(
    IN  GT_U8                                  devNum,
    IN GT_U32                                 portGroupId,
    IN  PRV_CPSS_DXCH_TABLE_ENT                tableId,
    IN  GT_U32                                 entryIndex,
    IN  GT_U32                                 entryMemoBufArr[],
    IN  GT_U32                                 fieldsAmount,
    IN  GT_U32                                 fieldOffsetArr[],
    IN  GT_U32                                 fieldLengthArr[],
    OUT GT_U32                                 fieldValueArr[]
);


/*******************************************************************************
* prvCpssDxChPortGroupWriteTableEntry
*
* DESCRIPTION:
*       Write a whole entry to the table. - for specific portGroupId
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum  - the device number
*       portGroupId - the port group Id , to support multi-port-group devices that need to access
*                specific port group
*       tableType - the specific table name
*       entryIndex   - index in the table
*       entryValuePtr - (pointer to) the data that will be written to the table
*                       may be NULL in the case of indirect table.
*
*
* OUTPUTS:
*       None
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_OUT_OF_RANGE          - parameter not in valid range
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*
*      In the case of entryValuePtr == NULL and indirect table the function
*      just send write entry command to device. And entry is taken from the
*      data registers of a indirect table.
*******************************************************************************/
GT_STATUS prvCpssDxChPortGroupWriteTableEntry
(
    IN GT_U8                    devNum,
    IN GT_U32                   portGroupId,
    IN PRV_CPSS_DXCH_TABLE_ENT  tableType,
    IN GT_U32                   entryIndex,
    IN GT_U32                  *entryValuePtr
);

/*******************************************************************************
* prvCpssDxChPortGroupReadTableEntry
*
* DESCRIPTION:
*       Read a whole entry from the table. - for specific portGroupId
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum  - the device number
*       portGroupId - the port group Id , to support multi-port-group devices that need to access
*                specific port group
*       tableType - the specific table name
*       entryIndex   - index in the table
*
* OUTPUTS:
*       entryValuePtr - (pointer to) the data read from the table
*                       may be NULL in the case of indirect table.
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_OUT_OF_RANGE          - parameter not in valid range
*       GT_TIMEOUT  - after max number of retries checking if PP ready
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*
*      In the case of entryValuePtr == NULL and indirect table the function
*      just send read entry command to device. And entry is stored in the
*      data registers of a indirect table
*******************************************************************************/
GT_STATUS prvCpssDxChPortGroupReadTableEntry
(
    IN GT_U8                   devNum,
    IN GT_U32                  portGroupId,
    IN PRV_CPSS_DXCH_TABLE_ENT tableType,
    IN GT_U32                  entryIndex,
    OUT GT_U32                 *entryValuePtr
);

/*******************************************************************************
* prvCpssDxChPortGroupReadTableEntryField
*
* DESCRIPTION:
*       Read a field from the table. - for specific portGroupId
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum  - the device number
*       portGroupId - the port group Id , to support multi-port-group devices that need to access
*                specific port group
*       tableType - the specific table name
*       entryIndex   - index in the table
*       fieldWordNum - field word number
*                   use PRV_CPSS_DXCH_TABLE_WORD_INDICATE_GLOBAL_BIT_CNS
*                   if need global offset in the field of fieldOffset
*                   use PRV_CPSS_DXCH_TABLE_WORD_INDICATE_FIELD_NAME_CNS
*                   if need 'field name' in the field of fieldOffset
*       fieldOffset  - field offset
*       fieldLength - field length
*                   when fieldWordNum == PRV_CPSS_DXCH_TABLE_WORD_INDICATE_FIELD_NAME_CNS
*                   the field 'fieldLength' is used ONLY if  it's value != 0
*                   and then it means 'Mumber of consecutive fields' !!!
*
* OUTPUTS:
*       fieldValuePtr - (pointer to) the data read from the table
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_OUT_OF_RANGE          - parameter not in valid range
*       GT_TIMEOUT  - after max number of retries checking if PP ready
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*
*
*******************************************************************************/
GT_STATUS prvCpssDxChPortGroupReadTableEntryField
(
    IN GT_U8                  devNum,
    IN GT_U32                  portGroupId,
    IN PRV_CPSS_DXCH_TABLE_ENT tableType,
    IN GT_U32                 entryIndex,
    IN GT_U32                 fieldWordNum,
    IN GT_U32                 fieldOffset,
    IN GT_U32                 fieldLength,
    OUT GT_U32                *fieldValuePtr
);

/*******************************************************************************
* prvCpssDxChPortGroupWriteTableEntryField
*
* DESCRIPTION:
*       Write a field to the table.  - for specific portGroupId
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum  - the device number
*       portGroupId - the port group Id , to support multi-port-group devices that need to access
*                specific port group
*       tableType - the specific table name
*       entryIndex   - index in the table
*       fieldWordNum - field word number
*                   use PRV_CPSS_DXCH_TABLE_WORD_INDICATE_GLOBAL_BIT_CNS
*                   if need global offset in the field of fieldOffset
*                   use PRV_CPSS_DXCH_TABLE_WORD_INDICATE_FIELD_NAME_CNS
*                   if need 'field name' in the field of fieldOffset
*       fieldOffset  - field offset
*       fieldLength - field length
*                   when fieldWordNum == PRV_CPSS_DXCH_TABLE_WORD_INDICATE_FIELD_NAME_CNS
*                   the field 'fieldLength' is used ONLY if  it's value != 0
*                   and then it means 'Mumber of consecutive fields' !!!
*       fieldValue - the data write to the table
*
* OUTPUTS:
*       None
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_OUT_OF_RANGE          - parameter not in valid range
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*       In xCat A1 and above devices the data is updated only when the last
*       word in the entry was written.
*
*******************************************************************************/
GT_STATUS prvCpssDxChPortGroupWriteTableEntryField
(
    IN GT_U8                  devNum,
    IN GT_U32                 portGroupId,
    IN PRV_CPSS_DXCH_TABLE_ENT tableType,
    IN GT_U32                 entryIndex,
    IN GT_U32                 fieldWordNum,
    IN GT_U32                 fieldOffset,
    IN GT_U32                 fieldLength,
    IN GT_U32                 fieldValue
);

/*******************************************************************************
* prvCpssDxChWriteTableMultiEntry
*
* DESCRIPTION:
*       Write number of entries to the table in consecutive indexes.
* INPUTS:
*       devNum               - the device number
*       tableType            - the specific table name
*       startIndex           - index to the first table entry
*       numOfEntries         - the number of consecutive entries to write
*       entryValueArrayPtr   - (pointer to) the data that will be written to the table
*
* OUTPUTS:
*       None.
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_OUT_OF_RANGE          - parameter not in valid range
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*       None;
*******************************************************************************/
GT_STATUS prvCpssDxChWriteTableMultiEntry
(
    IN GT_U8                            devNum,
    IN PRV_CPSS_DXCH_TABLE_ENT          tableType,
    IN GT_U32                           startIndex,
    IN GT_U32                           numOfEntries,
    IN GT_U32                           *entryValueArrayPtr
);

/*******************************************************************************
* prvCpssDxChReadTableMultiEntry
*
* DESCRIPTION:
*       Read number of entries from the table in consecutive indexes.
* INPUTS:
*       devNum          - the device number
*       tableType       - the specific table name
*       startIndex      - index to the first table entry
*       numOfEntries    - the number of consecutive entries to read
*
* OUTPUTS:
*       entryValueArrayPtr   - (pointer to) the data that will be read from the table
*
* RETURNS:
*       GT_OK                    - on success.
*       GT_FAIL                  - on failure.
*       GT_OUT_OF_RANGE          - parameter not in valid range
*       GT_NOT_APPLICABLE_DEVICE - on not applicable device
*
* COMMENTS:
*       None;
*******************************************************************************/
GT_STATUS prvCpssDxChReadTableMultiEntry
(
    IN  GT_U8                            devNum,
    IN  PRV_CPSS_DXCH_TABLE_ENT          tableType,
    IN  GT_U32                           startIndex,
    IN  GT_U32                           numOfEntries,
    OUT GT_U32                           *entryValueArrayPtr
);

/*******************************************************************************
* prvCpssDxChTableBaseAddrGet
*
* DESCRIPTION:
*       This function retrieves base address of table.(for 'Direct access' tables)
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2; Lion2; Bobcat2; Caelum; Bobcat3.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum  - The PP's device number to init the struct for.
*       devNum               - the device number
*       tableType            - the specific table name
* OUTPUTS:
*       errorPtr - (pointer to) indication that function did error. (can be NULL)
*
* RETURNS:
*       on success - return the base address
*       on error   - return address that ((address % 4) != 0)
*
* COMMENTS:
*
*******************************************************************************/
GT_U32  prvCpssDxChTableBaseAddrGet
(
    IN GT_U8                            devNum,
    IN PRV_CPSS_DXCH_TABLE_ENT          tableType,
    OUT GT_BOOL                         *errorPtr
);

/*******************************************************************************
* prvCpssDxChTablePortsBmpCheck
*
* DESCRIPTION:
*       This function checks that the bmp of ports can be supported by the device.
*       assumption that it is bmp of port of 'this' device.
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2; Lion2; Bobcat2; Caelum; Bobcat3.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum               - the device number
*       portsBmpPtr          - pointer to the bmp of ports
* OUTPUTS:
*       None.
*
* RETURNS:
*       GT_OK - on success
*       GT_BAD_PARAM - when bmp hold ports that not supported by the device
*
* COMMENTS:
*
*******************************************************************************/
GT_STATUS   prvCpssDxChTablePortsBmpCheck
(
    IN GT_U8                     devNum,
    IN CPSS_PORTS_BMP_STC       *portsBmpPtr
);

/*******************************************************************************
* prvCpssDxChTablePortsBmpLimitedNumCheck
*
* DESCRIPTION:
*       This function checks that the bmp of ports can be supported by the device.
*       assumption that it is bmp of port of 'this' device.
*       with limited number of ports that supported
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2; Lion2; Bobcat2; Caelum; Bobcat3.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum               - the device number
*       limitedNum           - limited number of ports in the BMP that allowed
*                              to be different from zero.
*       portsBmpPtr          - pointer to the bmp of ports
* OUTPUTS:
*       None.
*
* RETURNS:
*       GT_OK - on success
*       GT_BAD_PARAM - when bmp hold ports that not supported by the device or
*                      bit is set over 'limitedNum'
*
* COMMENTS:
*
*******************************************************************************/
GT_STATUS   prvCpssDxChTablePortsBmpLimitedNumCheck
(
    IN GT_U8                     devNum,
    IN GT_U32                    limitedNum,
    IN CPSS_PORTS_BMP_STC       *portsBmpPtr
);

/*******************************************************************************
* prvCpssDxChTablePortsBmpAdjustToDevice
*
* DESCRIPTION:
*       This function removes none exists ports from bmp of ports.
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2; Lion2; Bobcat2; Caelum; Bobcat3.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum               - the device number
*       IN_portsBmpPtr       - pointer to the bmp of ports
* OUTPUTS:
*       OUT_portsBmpPtr      - pointer to the bmp of ports , that hold no ports
*                              that not supported by the device
*
* RETURNS:
*       GT_OK - on success
*
* COMMENTS:
*
*******************************************************************************/
GT_STATUS   prvCpssDxChTablePortsBmpAdjustToDevice
(
    IN GT_U8                     devNum,
    IN  CPSS_PORTS_BMP_STC       *IN_portsBmpPtr,
    OUT CPSS_PORTS_BMP_STC       *OUT_portsBmpPtr
);

/*******************************************************************************
* prvCpssDxChTablePortsBmpAdjustToDeviceLimitedNum
*
* DESCRIPTION:
*       This function removes none exists ports from bmp of ports.
*       with limited number of ports that supported
*
* APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2; Lion2; Bobcat2; Caelum; Bobcat3.
*
* NOT APPLICABLE DEVICES:
*        None.
*
* INPUTS:
*       devNum               - the device number
*       limitedNum           - limited number of ports in the BMP that allowed
*                              to be different from zero.
*       IN_portsBmpPtr       - pointer to the bmp of ports
* OUTPUTS:
*       OUT_portsBmpPtr      - pointer to the bmp of ports , that hold no ports
*                              that not supported by the device
*
* RETURNS:
*       GT_OK - on success
*
* COMMENTS:
*
*******************************************************************************/
GT_STATUS   prvCpssDxChTablePortsBmpAdjustToDeviceLimitedNum
(
    IN GT_U8                     devNum,
    IN GT_U32                    limitedNum,
    IN  CPSS_PORTS_BMP_STC       *IN_portsBmpPtr,
    OUT CPSS_PORTS_BMP_STC       *OUT_portsBmpPtr
);

/*******************************************************************************
* prvCpssDxChTablePlrMeterFieldBuild
*
* DESCRIPTION:
*       This function build the value into needed field in the proper buffer.
*
* APPLICABLE DEVICES:
*        Bobcat2; Caelum; Bobcat3.
*
* NOT APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2; Lion2.
*
* INPUTS:
*       devNum               - the device number
*       hwMeterArr           - pointer to 'meter' entry (in 5_15 'token bucket' entry)
*       hwMeterConfigArr     - pointer to 'meter config' entry (relevant only to 5_15)
*       fieldName            - name of the field to set
*       value                - value to set
* OUTPUTS:
*       None.
*
* RETURNS:
*       GT_OK - on success
*       GT_NOT_IMPLEMENTED - on non implemented case
*       GT_NOT_APPLICABLE_DEVICE - on non relevant field to the device
*       GT_BAD_PARAM - on value that not fit into field
*
* COMMENTS:
*
*******************************************************************************/
GT_STATUS   prvCpssDxChTablePlrMeterFieldBuild
(
    IN GT_U8                    devNum,
    IN GT_U32                   hwMeterArr[],
    IN GT_U32                   hwMeterConfigArr[],
    IN LION3_PLR_METERING_TABLE_FIELDS_ENT      fieldName,
    IN GT_U32                   value
);

/*******************************************************************************
* prvCpssDxChTablePlrMeterFieldParse
*
* DESCRIPTION:
*       This function parse the value for needed field from the proper buffer.
*
* APPLICABLE DEVICES:
*        Bobcat2; Caelum; Bobcat3.
*
* NOT APPLICABLE DEVICES:
*        DxCh1; DxCh1_Diamond; DxCh2; DxCh3; xCat; xCat3; Lion; xCat2; Lion2.
*
* INPUTS:
*       devNum               - the device number
*       hwMeterArr           - pointer to 'meter' entry (in 5_15 'token bucket' entry)
*       hwMeterConfigArr     - pointer to 'meter config' entry (relevant only to 5_15)
*       fieldName            - name of the field to set
* OUTPUTS:
*       value                - (pointer to) value to get
*
* RETURNS:
*       GT_OK - on success
*       GT_NOT_IMPLEMENTED - on non implemented case
*       GT_NOT_APPLICABLE_DEVICE - on non relevant field to the device
*       GT_BAD_PARAM - on value that not fit into field
*
* COMMENTS:
*
*******************************************************************************/
GT_STATUS   prvCpssDxChTablePlrMeterFieldParse
(
    IN GT_U8                    devNum,
    IN GT_U32                   hwMeterArr[],
    IN GT_U32                   hwMeterConfigArr[],
    IN LION3_PLR_METERING_TABLE_FIELDS_ENT      fieldName,
    IN GT_U32                   *valuePtr
);


#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __prvCpssDxChHwTablesh */

